2日間フューエルフューズを試しましたが、今まで失敗しました。'FlaskDB'オブジェクトには 'sequences'という属性はありません
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でそれを実行します:のpython 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 'オブジェクトの意味は何ですか?' sequence '属性はありません。私は何をすべきか?
ありがとうございました!
私は今この問題を解決しました。私は低レベルの間違いをした。この問題は別のファイル - models.pyで発生しました。これらのdbテーブルのクラス定義では、Modelの代わりにflask_db.Modelをベースクラスにする必要があります。ちょうどこれで、今はすべてがOKです。 – urbainy