質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
Flask

FlaskはPython用のマイクロフレームワークであり、Werkzeug・Jinja 2・good intentionsをベースにしています。

SQLAlchemy

SQLAlchemyとはPython 用のORMライブラリです。MIT Licenceのオープンソースとして提供されています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

解決済

sqlalchmeyを使ってdbにデータを追加した後、htmlにリダイレクトしたい

dabi
dabi

総合スコア2

Flask

FlaskはPython用のマイクロフレームワークであり、Werkzeug・Jinja 2・good intentionsをベースにしています。

SQLAlchemy

SQLAlchemyとはPython 用のORMライブラリです。MIT Licenceのオープンソースとして提供されています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

1回答

0評価

0クリップ

206閲覧

投稿2022/03/20 15:03

register.htmlのページからユーザネームとパスワードのPOSTリクエストを受け取るとdbにデータを追加して/loginにリダイレクトするというアプリを作ったのですが、dbにはデータが格納されているものの、ブラウザにはlogin.htmlが表示されることはなく、Internal Server Error と表示されてしまいます。
どのようにすれば解決できるでしょうか?
※まだ、loginするアプリは制作していないので、
login.htmlに関しては、register.htmlとほぼ同一のコードです。

register.html

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>アプリ</title> <link rel="stylesheet" href="static/style.css"> <link href="https://fonts.googleapis.com/css?family=Londrina+Outline" rel="stylesheet"> <link href="https://fonts.googleapis.com/earlyaccess/nicomoji.css" rel="stylesheet" /> </head> <body> <div class="login_form"> <form action="" method="post"> <p class="text">ユーザーネーム</p> <textarea name="name" id=""></textarea> <p class="text">パスワード</p> <textarea class="pass" name="password" type="password" id="" ></textarea> </br> <button type="submit" class="Send_button", id="">始める!!</button> </form> </div> </body> </html>

main.py

import os from flask import Flask, render_template, request, redirect, url_for from flask_sqlalchemy import SQLAlchemy from werkzeug.security import generate_password_hash app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///user.db' app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False app.config['SECRET_KEY'] = os.urandom(24) db = SQLAlchemy(app) class User(db.Model): id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(50), nullable=False, unique=True) password = db.Column(db.String(25)) @app.route('/login') def login(): return render_template('login.html') @app.route('/register', methods=['POST', 'GET']) def register(): if request.method == "POST": username = request.form.get('name') password = request.form.get('password') # Userのインスタンスを作成 user = User(username=username, password=generate_password_hash(password, method='sha256')) db.session.add(user) db.session.commit() redirect('/login') else: return render_template('register.html') if __name__ == '__main__': app.run()

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

Supernove

2022/03/20 15:08

internal server errorということはアプリケーションを実行しているターミナル上でなにかしらエラーが出ているのでそれを載せてもらえばその原因を回答できると思います。(できれば自分が実装しているのでそこから自分で原因を特定できたらいいのですが…)
dabi

2022/03/21 14:42

ターミナルには、以下のようなエラーが表示されています raise TypeError( TypeError: The view function for 'register' did not return a valid response. The function either returned None or ended without a return statement. 127.0.0.1 - - [21/Mar/2022 23:41:32] "POST /register HTTP/1.1" 500 -

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Flask

FlaskはPython用のマイクロフレームワークであり、Werkzeug・Jinja 2・good intentionsをベースにしています。

SQLAlchemy

SQLAlchemyとはPython 用のORMライブラリです。MIT Licenceのオープンソースとして提供されています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。