register.htmlのページからユーザネームとパスワードのPOSTリクエストを受け取るとdbにデータを追加して/loginにリダイレクトするというアプリを作ったのですが、dbにはデータが格納されているものの、ブラウザにはlogin.htmlが表示されることはなく、Internal Server Error と表示されてしまいます。
どのようにすれば解決できるでしょうか?
※まだ、loginするアプリは制作していないので、
login.htmlに関しては、register.htmlとほぼ同一のコードです。
register.html
1<!DOCTYPE html> 2<html lang="en"> 3<head> 4 <meta charset="UTF-8"> 5 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 6 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 7 <title>アプリ</title> 8 <link rel="stylesheet" href="static/style.css"> 9 <link href="https://fonts.googleapis.com/css?family=Londrina+Outline" rel="stylesheet"> 10 <link href="https://fonts.googleapis.com/earlyaccess/nicomoji.css" rel="stylesheet" /> 11 12</head> 13<body> 14 <div class="login_form"> 15 <form action="" method="post"> 16 <p class="text">ユーザーネーム</p> 17 <textarea name="name" id=""></textarea> 18 <p class="text">パスワード</p> 19 <textarea class="pass" name="password" type="password" id="" ></textarea> 20 </br> 21 <button type="submit" class="Send_button", id="">始める!!</button> 22 </form> 23 </div> 24</body> 25</html>
main.py
1import os 2from flask import Flask, render_template, request, redirect, url_for 3from flask_sqlalchemy import SQLAlchemy 4from werkzeug.security import generate_password_hash 5 6 7app = Flask(__name__) 8app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///user.db' 9app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False 10app.config['SECRET_KEY'] = os.urandom(24) 11db = SQLAlchemy(app) 12 13class User(db.Model): 14 id = db.Column(db.Integer, primary_key=True) 15 username = db.Column(db.String(50), nullable=False, unique=True) 16 password = db.Column(db.String(25)) 17 18 19@app.route('/login') 20def login(): 21 return render_template('login.html') 22 23@app.route('/register', methods=['POST', 'GET']) 24def register(): 25 if request.method == "POST": 26 username = request.form.get('name') 27 password = request.form.get('password') 28 # Userのインスタンスを作成 29 user = User(username=username, password=generate_password_hash(password, method='sha256')) 30 db.session.add(user) 31 db.session.commit() 32 redirect('/login') 33 else: 34 return render_template('register.html') 35 36 37if __name__ == '__main__': 38 app.run() 39

回答1件
あなたの回答
tips
プレビュー