我使用flask-peewee学习。与教程there中一样,我应用此脚本(app.py):
import datetime
from flask import Flask
from flask_peewee.auth import Auth
from flask_peewee.db import Database
from peewee import *
from flask_peewee.admin import Admin
# configure our database
DATABASE = {
'name': 'exampleappusi.db',
'engine': 'peewee.SqliteDatabase',
}
DEBUG = True
SECRET_KEY = 'ssshhhh'
app = Flask(__name__)
app.config.from_object(__name__)
# instantiate the db wrapper
db = Database(app)
class Note(db.Model):
message = TextField()
created = DateTimeField(default=datetime.datetime.now)
# create an Auth object for use with our flask app and database wrapper
auth = Auth(app, db)
admin = Admin(app, auth)
admin.register(Note)
admin.setup()
if __name__ == '__main__':
auth.User.create_table(fail_silently=True)
Note.create_table(fail_silently=True)
app.run(host='0.0.0.0')
直到这部分:
我们现在有一个正常运作的管理网站!当然,我们需要用户登录,因此在应用程序旁边的目录中打开一个交互式python shell并运行以下命令:
在教程中,我们在python shell中做(我知道我们这样做是为了添加用户并以手动方式传递):
>> from auth import User
>> admin = User(username='admin', admin=True, active=True)
>> admin.set_password('admin')
>> admin.save()
问题是我从auth import User执行“>>”时出错,这意味着没有名为auth的模块。当然,在这种情况下我们需要auth.py,但是auth.py应该是什么?
感谢。
答案 0 :(得分:3)
您的模块名为app
,因此您应该在那里导入auth
。
>> from app import auth
>> User = auth.User
>> admin = User(username='admin', admin=True, active=True)
>> admin.set_password('admin')
>> admin.save()
答案 1 :(得分:0)
您可以创建auth.py文件:
auth.py(与app.py相同的目录)
from flask_peewee.auth import Auth
from app import app, db
auth = Auth(app, db)
您还需要一个models.py来创建用户:
https://github.com/coleifer/flask-peewee/blob/master/example/models.py