当前位置: 首页 > 知识库问答 >
问题:

“FlaskDB”对象没有属性“sequences”

谈炳
2023-03-14

我用烧瓶试了两天,但直到现在都失败了。代码如下:

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: pythonmanage.py运行它时,我得到了以下错误:

(venv)➜ /Users/yw/Documents/webgit:(master)✗ p管理。py run Traceback(最近一次调用last):cli()文件“/Users/yw/Documents/web/venv/lib/python3.4/site packages/click/core.py”,第716行,调用返回self中的文件“manage.py”,第46行。main(*args,**kwargs)文件“/Users/yw/Documents/web/venv/lib/python3.4/site packages/flask/cli.py”,第345行,在主返回应用程序组中。main(self,*args,**kwargs)文件“/Users/yw/Documents/web/venv/lib/python3.4/site packages/click/core.py”,第696行,在main rv=self中。调用(ctx)文件“/Users/yw/Documents/web/venv/lib/python3.4/site packages/click/core.py”,第1060行,在调用-返回(sub_-ctx.command.invoke(sub_-ctx))文件“/Users/yw/Documents/web/venv/lib/python3.4/site packages/click/core.py”,第889行,在调用-返回ctx中。调用(self.callback,**ctx.params)文件“/Users/yw/Documents/web/venv/lib/python3.4/site packages/click/core.py”,第534行,在调用返回回调(*args,**kwargs)文件“/Users/yw/Documents/web/venv/lib/python3.4/site packages/click/decorators.py”,第64行,在新函数返回ctx中。调用(f,obj,*args[1:],**kwargs)文件“/Users/yw/Documents/web/venv/lib/python3.4/site packages/click/core.py”,第534行,在调用返回回调(*args,**kwargs)文件“/Users/yw/Documents/web/venv/lib/python3.4/site packages/flask/cli.py”,第388行,在run\u命令app=DispatchingApp(info.load\u app,use\u-eager\u-load=eager\u-load)文件中“/Users/yw/Documents/web/venv/lib/python3。4/站点包/flask/cli。py“,第124行,在init self.\u load_unlocked()文件“/Users/yw/Documents/web/venv/lib/python3中。4/站点包/flask/cli。py“,第148行,在_load_unlocked self._app=rv=self.loader()文件“/Users/yw/Documents/web/venv/lib/python3中。4/站点包/flask/cli。py”,第201行,加载应用程序rv=self。创建应用程序(self)文件“管理”。py”,第30行,在创建应用程序返回创建应用程序(“开发”)文件“管理”中。py“,第19行,在create_app flask_db.database.create_tables([User])文件“/Users/yw/Documents/web/venv/lib/python3中。4/现场包/peewee。py”,第3765行,在创建表格创建模型表格(模型,失败=safe)文件“/Users/yw/Documents/web/venv/lib/python3中。4/现场包/peewee。py”,第5175行,在create_model_tables m.create_table(**create_table_kwargs)文件“/Users/yw/Documents/web/venv/lib/python3中。4/现场包/peewee。py”,第4845行,如果db.sequences和pk不为False且pk.sequence:AttributeError:“FlaskDB”对象没有属性“sequences”

事实上,我只是想通过使用flask.cli工具来启动数据库。如您所见,如果我使用命令“pythonmanage.pyinitdb”,我只能得到与上面相同的错误输出。

那么,“FlaskDB”对象没有属性“sequences”是什么意思呢?我该怎么办?

谢谢你的帮助!

共有1个答案

宇文念
2023-03-14

您的用户型号似乎没有正确的数据库。

使用FlaskDB,您的User模型应该继承FlaskDB()。Model而不是定义类Meta:数据库=数据库。

database = FlaskDB()

class User(database.Model):
    pass
 类似资料:
  • 这是我的密码: 这条线给了我错误 "属性错误:'浮点'对象没有属性'exp'"。X,t是Numpy ndarray。

  • 问题内容: 我正在开发Django应用程序,并且出现以下错误 我的模型是这样构造的 我应该做什么? 问题答案: 首先,您必须非常小心地重写以具有非可选参数。记住,每次从一个查询集中获取一个对象时,它将被调用! 这是您想要的正确代码: 如果您只使用该对象的子类,我强烈建议在Animal上设置abstract选项。这样可以确保不为动物创建表,而仅为绵羊(等)创建表。如果未设置abstract,则将创建

  • 我创建了这个简单的GUI: 我让用户界面启动并运行。当我点击按钮时,我在控制台上得到以下错误: 为什么设置为?

  • 问题内容: 我将Selenium webdriver(chrome)与Python结合使用,试图从网页上的所有链接中获取 href 。当我尝试以下操作时: 它设法获取所有链接,但是在get_attribute上出现错误: “ WebElement”对象没有属性“ Get_Attribute” 尽管到处都看起来很正常。 问题答案: “ Get_Attribute”属性不存在,但是“ get_attr

  • 问题内容: 我创建了这个简单的GUI: 我启动并运行了UI。当我单击Grab按钮时,在控制台上出现以下错误: 为什么entryBox设置为None? 问题答案: 并且place在功能Entry对象和所有其他部件的回报None。在python中,执行此操作时.,表达式的结果为返回的值,因此。 你应该将其分成两行,如下所示: 这样,你就可以将参考存储在其中,并且可以按照你的期望进行布局。如果你以块的形

  • 问题内容: 它显示了运行时错误: 我只是python的初学者,即使在网上搜索后也无法纠正此问题。 问题答案: 错误: 表示您正在尝试将索引运算符应用于int而不是列表。所以即使在应该的时候也没有清单吗?让我们从那开始。 看这里: 在内部使用其他变量名称,看起来列表理解会在迭代过程中覆盖该变量。(不是在设置时 进行 迭代,而是在以下过程中进行。)