使用 SQLAlchemy(Flask) 创建数据库

问题描述 投票:0回答:2

我想用 SQLAlchemey 创建一个数据库,但我一直陷入同样的错误,我不知道如何解决它或我做错了什么。

我的代码和我的终端

应用程序.py

from flask import Flask, render_template
from flask_sqlalchemy import SQLAlchemy


app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///db.sqlite'
app.config['SQLALCHEMY_TRACK_MODI'] = False
db = SQLAlchemy(app)


class Item(db.Model):
    name = db.Column(db.String(100))


@app.route("/")
def home():
    return render_template('home.html')


if __name__ == '__main__':
    app.run()
    db.create_all()

my terminal output

python sqlite flask sqlalchemy flask-sqlalchemy
2个回答
0
投票

该错误表明您正在应用程序上下文之外工作。

if __name__ == '__main__':
   with app.app_context():
       db.create_all()

   app.run()

此代码将在应用程序上下文中访问

db
。请参阅应用程序上下文的文档。


0
投票

为了对数据库条目进行唯一分配,您需要一个定义为主键的列。使用此键可以查找和引用条目。

class Item(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(100))
© www.soinside.com 2019 - 2024. All rights reserved.