首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  Flask

flask 官网教程执行 flask init-db 报错

  •  
  •   duzhonglin · 357 天前 · 2792 次点击
    这是一个创建于 357 天前的主题,其中的信息可能已经有所发展或是发生改变。
    __init__.py 文件
    # -*- coding = utf-8 -*-

    import os
    from flask import Flask


    def 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!'
    return app

    from . import db
    db.init_app(app)
    return app

    db.py 文件

    # -*- coding=utf-8 -*-

    import sqlite3
    import click
    from flask import current_app, g
    from flask.cli import with_appcontext


    def 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.db


    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_appcontext
    def init_db_command():
    init_db()
    click.echo('Initialized the database.')


    def close_db(e=None):
    db = g.pop('db', None)
    if db is not None:
    db.close()

    def init_app(app):
    app.teardown_appcontext(close_db)
    app.cli.add_command(init_db_command)

    目录结构:
    flaskr/
    __init__.py
    db.py
    schema.sql

    FLASK_APP, FLASK_ENV 都已经设置,flask run 运行是正常的,无报错。执行 flask init-db 报错提示找不到这个命令:Error: No such command "init-db". 请问各位大神是什么原因啊,我网上的方法都试了解决不呢?
        1
    Gakho   357 天前
    我当时学的时候是要用 flask-script 扩展的,不知道现在还是不是
        2
    duzhonglin   357 天前
    谢谢,我网上搜了一下没有看到说要用 flask-script 扩展呢
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3283 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 27ms · UTC 04:53 · PVG 12:53 · LAX 20:53 · JFK 23:53
    ♥ Do have faith in what you're doing.