我正在關(guān)注本教程,但仍然設(shè)法搞砸了。去搞清楚。完成我們創(chuàng)建數(shù)據(jù)庫的第三頁之前的所有操作。我知道 init-db 是正確的格式,我已經(jīng)在 venv 中安裝了 flask,但我不知道哪里出錯(cuò)了。編輯:我已經(jīng)完成了導(dǎo)出 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);完整的錯(cuò)誤代碼:(venv) root@pi:/home/pi/flaskr# flask init-db用法:燒瓶[選項(xiàng)] 命令[參數(shù)] ...嘗試使用“flask --help”尋求幫助。錯(cuò)誤:沒有這樣的命令“init-db”。
1 回答

開滿天機(jī)
TA貢獻(xiàn)1786條經(jīng)驗(yàn) 獲得超13個(gè)贊
所以.. 這花了我一段時(shí)間來重新創(chuàng)建,但我已經(jīng)弄清楚了。您在終端中的錯(cuò)誤目錄中。flask init-db 需要從 pi 而不是 flaskr 運(yùn)行...這是假設(shè)您的 venv 環(huán)境在 pi 中。
添加回答
舉報(bào)
0/150
提交
取消