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

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

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

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

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

Python

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

Q&A

解決済

1回答

1387閲覧

Missing user_loader or request_loaderのエラー

jaogjig

総合スコア21

Flask

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

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

Python

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

0グッド

0クリップ

投稿2021/12/27 12:41

編集2021/12/27 15:12

前提・実現したいこと

pythonで財務諸表を自動で分析できるようなシステムを作っています。
http://127.0.0.1:5000/を打ち込むと以下が表示されます。

発生している問題・エラーメッセージ

Exception: Missing user_loader or request_loader. Refer to http://flask-login.readthedocs.io/#how-it-works for more info.と書かれていました。
調べたところ
flask_loginとloginManagerらへんがエラーの原因だと考えているのですかそこからどこを直していけばいいのかわかりません。

該当のソースコード

app

1.py 2from re import L 3import os 4from flask import Flask,render_template,request,redirect 5import pandas as pd 6from flask_sqlalchemy import SQLAlchemy 7from flask_login import UserMixin, LoginManager 8from werkzeug.security import generate_password_hash ,check_password_hash 9app = Flask(__name__) 10app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///search.db' 11app.config['SECRET_KEY']= os.urandom(24) 12db = SQLAlchemy(app) 13Login_manager=LoginManager() 14Login_manager.init_app(app) 15#データベース機能 16class User(db.Model): 17 id = db.Column(db.Integer, primary_key=True) 18 user_name = db.Column(db.String(20), unique=True, nullable=False) 19 password = db.Column(db.String(20), unique=True, nullable=False) 20def __init__(self,user_name=None, password=None): 21 self.user_name =user_name 22 self.password=password 23#user機能 24@app.route("/login",methods=["GET"]) 25def login(): 26 return render_template("login.html") 27 28@app.route("/Registar",methods=["GET","POSt"]) 29def Registar(): 30 if request.method == 'POST': 31 user_name= request.form.get('user_name') 32 password= request.form.get('password') 33 user= User(user_name=user_name, password=password) 34 db.session.add(user) 35 db.session.commit() 36 return redirect('/') 37 else: 38 return render_template("Registar.html")

試したこと

以下の記事を参考にしました。
https://www.fixes.pub/program/272390.html

補足情報(FW/ツールのバージョンなど)

ファイルとディレクトリの配置
pycache
|-app.cpython-39.pyc
images
|-2.png
static
|-design.css
templates
|-howto.html
|-index.html
|-searched.html
|-table.html
|-Registar.html
|-login.html

app.py
search.db
クレスコ財務データ(自動保存済み).csv

FW:flask
言語:Python3.9.7
pandasダウンロード済み

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

@Login_manager.user_loader
def load_user(user_id):
return User.query.get(int(user_id))

投稿2021/12/28 09:54

jaogjig

総合スコア21

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sugamat

2022/01/01 12:43

お陰様で、私のエラーも解決したのですが、 理解を深めるために、質問させて頂いてもよろしいでしょうか? 変更前 @login_manager.user_loader def load_user(user_id): return User.get(user_id) 変更後 @login_manager.user_loader def load_user(user_id): return User.query.get(int(user_id)) 変更前のものは、 読み込み時には問題なかったのですが、 リダイレクトの時に、エラーが出ていました。 なぜリダイレクトの時だけ、問題になったのでしょうか? もしご存知でしたら、アドバイス頂けると助かります。
jaogjig

2022/01/01 16:57

自分は動画を見てやっていてその問題は詳しく書いてなかったため答えを知りません。 こちらとしては考えたいのですが、エラー内容と前後関係が分からないと答えようがありません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問