为了账号安全,请及时绑定邮箱和手机立即绑定

第一次用 Flask 创建网站时,我一直想出“错误:创建数据库时没有这样的命令‘init-db’”

第一次用 Flask 创建网站时,我一直想出“错误:创建数据库时没有这样的命令‘init-db’”

慕森王 2022-12-14 21:15:47
我正在关注本教程,但仍然设法搞砸了。去搞清楚。完成我们创建数据库的第三页之前的所有操作。我知道 init-db 是正确的格式,我已经在 venv 中安装了 flask,但我不知道哪里出错了。编辑:我已经完成了导出 db.pyimport sqlite3import clickfrom flask import current_app, gfrom flask.cli import with_appcontextdef get_db():    if 'db' not in g:        g.db = sqlite3.connect(            current_app.config['DATABASE'],            detect_types=sqlite3.PARSE_DECLTYPES        )        g.db.row_factory = sqlite3.Row    return g.dbdef close_db(e=None):    db = g.pop('db', None)    if db is not None:        db.close()def init_db():    db = get_db()    with current_app.open_resource('schema.sql') as f:        db.executescript(f.read().decode('utf8'))@click.command('init-db')@with_appcontextdef init_db_command():    #clear the existing data and create new tables    init_db()    click.echo('Initialized the database.')def init_app(app):    app.teardown_appcontext(close_db)    app.cli.add_command(init_db_command)init.pyimport osfrom flask import Flaskdef create_app(test_config=None):    app = Flask(__name__, instance_relative_config=True)    app.config.from_mapping(        SECRET_KEY='dev',        DATABASE=os.path.join(app.instance_path, 'flaskr.sqlite'),    )    if test_config is None:        app.config.from_pyfile('config.py', silent=True)    else:        app.config.from_mapping(test_config)    try:        os.makedirs(app.instance_path)    except OSError:        pass    @app.route('/hello')    def hello():        return 'Hello World'    from . import db    db.init_app(app)    return app和模式.sqlDROP TABLE IF EXISTS user;DROP TABLE IF EXISTS post;CREATE TABLE user (    id INTEGER PRIMARY KEY AUTOINCREMENT,    username TEXT UNIQUE NOT NULL,    password TEXT NOT NULL);完整的错误代码:(venv) root@pi:/home/pi/flaskr# flask init-db用法:烧瓶[选项] 命令[参数] ...尝试使用“flask --help”寻求帮助。错误:没有这样的命令“init-db”。
查看完整描述

1 回答

?
开满天机

TA贡献1786条经验 获得超12个赞

所以.. 这花了我一段时间来重新创建,但我已经弄清楚了。您在终端中的错误目录中。flask init-db 需要从 pi 而不是 flaskr 运行...这是假设您的 venv 环境在 pi 中。



查看完整回答
反对 回复 2022-12-14
  • 1 回答
  • 0 关注
  • 91 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信