我試着用燒瓶兩天peewee,但我失敗了,直到現在。該代碼是爲如下:'FlaskDB'對象沒有任何屬性'序列'
import click
from flask import Flask
from flask.cli import FlaskGroup
from playhouse.flask_utils import FlaskDB
from models import *
from config import config
flask_db = FlaskDB()
def create_app(config_name):
application = Flask(__name__)
application.config.from_object(config[config_name])
flask_db.init_app(application)
flask_db.connect_db()
flask_db.database.create_tables([User])
flask_db.database.close()
@application.route('/')
def index():
return "hello world!"
return application
def create_cli_app(info):
return create_app("develop")
@click.group(cls=FlaskGroup, create_app=create_cli_app)
def cli():
pass
@cli.command()
def initdb():
flask_db.connect_db()
flask_db.database.create_tables([User])
flask_db.database.close()
if __name__ == "__main__":
cli()
當我與CLI運行:蟒蛇manage.py運行,我得到了以下錯誤:
(venv) ➜ /Users/yw/Documents/web git:(master) ✗ p manage.py run Traceback (most recent call last): File "manage.py", line 46, in cli() File "/Users/yw/Documents/web/venv/lib/python3.4/site-packages/click/core.py", line 716, in call return self.main(*args, **kwargs) File "/Users/yw/Documents/web/venv/lib/python3.4/site-packages/flask/cli.py", line 345, in main return AppGroup.main(self, *args, **kwargs) File "/Users/yw/Documents/web/venv/lib/python3.4/site-packages/click/core.py", line 696, in main rv = self.invoke(ctx) File "/Users/yw/Documents/web/venv/lib/python3.4/site-packages/click/core.py", line 1060, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) File "/Users/yw/Documents/web/venv/lib/python3.4/site-packages/click/core.py", line 889, in invoke return ctx.invoke(self.callback, **ctx.params) File "/Users/yw/Documents/web/venv/lib/python3.4/site-packages/click/core.py", line 534, in invoke return callback(*args, **kwargs) File "/Users/yw/Documents/web/venv/lib/python3.4/site-packages/click/decorators.py", line 64, in new_func return ctx.invoke(f, obj, *args[1:], **kwargs) File "/Users/yw/Documents/web/venv/lib/python3.4/site-packages/click/core.py", line 534, in invoke return callback(*args, **kwargs) File "/Users/yw/Documents/web/venv/lib/python3.4/site-packages/flask/cli.py", line 388, in run_command app = DispatchingApp(info.load_app, use_eager_loading=eager_loading) File "/Users/yw/Documents/web/venv/lib/python3.4/site-packages/flask/cli.py", line 124, in init self._load_unlocked() File "/Users/yw/Documents/web/venv/lib/python3.4/site-packages/flask/cli.py", line 148, in _load_unlocked self._app = rv = self.loader() File "/Users/yw/Documents/web/venv/lib/python3.4/site-packages/flask/cli.py", line 201, in load_app rv = self.create_app(self) File "manage.py", line 30, in create_cli_app return create_app("develop") File "manage.py", line 19, in create_app flask_db.database.create_tables([User]) File "/Users/yw/Documents/web/venv/lib/python3.4/site-packages/peewee.py", line 3765, in create_tables create_model_tables(models, fail_silently=safe) File "/Users/yw/Documents/web/venv/lib/python3.4/site-packages/peewee.py", line 5175, in create_model_tables m.create_table(**create_table_kwargs) File "/Users/yw/Documents/web/venv/lib/python3.4/site-packages/peewee.py", line 4845, in create_table if db.sequences and pk is not False and pk.sequence: AttributeError: 'FlaskDB' object has no attribute 'sequences'
事實上,我只是想發起DB通過使用flask.cli工具。正如你所看到的,如果我使用命令「python manage.py initdb」,我只能得到與上面相同的錯誤輸出。
那麼「FlaskDB」對象的含義是什麼沒有屬性「序列」?我該怎麼辦?
感謝您的幫助!
我解決了這個問題,現在,請關閉這個職位。我犯了一個低級錯誤。問題發生在另一個文件 - models.py中。在這些db表的類定義中,我應該使用flask_db.Model而不是Model作爲基類。就這樣,現在一切正常。 – urbainy