2016-09-30 12 views
0

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 '属性はありません。私は何をすべきか?

ありがとうございました!

+0

私は今この問題を解決しました。私は低レベルの間違いをした。この問題は別のファイル - models.pyで発生しました。これらのdbテーブルのクラス定義では、Modelの代わりにflask_db.Modelをベースクラスにする必要があります。ちょうどこれで、今はすべてがOKです。 – urbainy

答えて

0

Userモデルに正しいデータベースがないようです。

FlaskDBの場合、Userモデルは、class Meta: database = databaseの代わりにFlaskDB().Model を継承する必要があります。

database = FlaskDB() 

class User(database.Model): 
    pass 
関連する問題