私は現在、flask-peewee
拡張機能に含まれているサンプルアプリの一部を取得して調整することにより、アプリを構築しようとしています (コードはこちら)。登録してログイン画面を表示できるようになりました。間違ったログイン資格情報を入力すると、ログイン資格情報が正しくないというメッセージが表示されます (予想どおり)。しかし、正しいログイン資格情報を入力すると、答えが見つからない巨大なトレースバックが表示されます。
通常、メソッドまたはテンプレートを調べて、何が問題なのかを確認します。ただし、この場合、ほとんどすべて (メソッドとテンプレート) は peewee によって処理されます。
以下に、最初にトレースバックを貼り付け、続いて (コメントで要求されているように) 現在持っているいくつかのファイルを貼り付けます。何が間違っている可能性があるかについての情報は大歓迎です!
トレースバック:
File "/Library/Python/2.7/site-packages/Flask-0.10-py2.7.egg/flask/app.py", line 1836, in __call__
return self.wsgi_app(environ, start_response)
File "/Library/Python/2.7/site-packages/Flask-0.10-py2.7.egg/flask/app.py", line 1820, in wsgi_app
response = self.make_response(self.handle_exception(e))
File "/Library/Python/2.7/site-packages/Flask-0.10-py2.7.egg/flask/app.py", line 1403, in handle_exception
reraise(exc_type, exc_value, tb)
File "/Library/Python/2.7/site-packages/Flask-0.10-py2.7.egg/flask/app.py", line 1817, in wsgi_app
response = self.full_dispatch_request()
File "/Library/Python/2.7/site-packages/Flask-0.10-py2.7.egg/flask/app.py", line 1477, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/Library/Python/2.7/site-packages/Flask-0.10-py2.7.egg/flask/app.py", line 1381, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/Library/Python/2.7/site-packages/Flask-0.10-py2.7.egg/flask/app.py", line 1475, in full_dispatch_request
rv = self.dispatch_request()
File "/Library/Python/2.7/site-packages/Flask-0.10-py2.7.egg/flask/app.py", line 1461, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/Library/Python/2.7/site-packages/flask_peewee/auth.py", line 170, in login
form.password.data,
File "/Library/Python/2.7/site-packages/flask_peewee/auth.py", line 128, in authenticate
if not user.check_password(password):
File "/Library/Python/2.7/site-packages/flask_peewee/auth.py", line 25, in check_password
return check_password(password, self.password)
File "/Library/Python/2.7/site-packages/flask_peewee/utils.py", line 138, in check_password
salt, hsh = enc_password.split('$', 1)
ValueError: need more than 1 value to unpack
私が今持っているファイルは次のとおりです。
- main.py
- app.py
- auth.py
- config.py
- models.py
以下にすべての内容を貼り付けますが、わかりやすくするために一部を省略しています。
main.py
from app import app
from models import *
from views import *
if __name__ == '__main__':
app.run()
app.py
from flask import Flask
from flask_peewee.db import Database
app = Flask(__name__)
app.config.from_object('config.Configuration')
db = Database(app)
auth.py
from flask_peewee.auth import Auth
from app import app, db
from models import User
auth = Auth(app, db, user_model=User)
config.py
class Configuration(object):
DATABASE = {
'name': 'mydatabase.db',
'engine': 'peewee.SqliteDatabase',
'check_same_thread': False,
}
DEBUG = True
SECRET_KEY = 'shhhh'
models.py
from datetime import datetime
from flask_peewee.auth import BaseUser
from peewee import CharField, BooleanField, ForeignKeyField, TextField, DateTimeField, IntegerField
from app import db
class User(db.Model, BaseUser):
username = CharField()
password = CharField()
name = CharField()
registered = DateTimeField(default=datetime.now())
active = BooleanField(default=False)