【问题标题】:Cannot Create tables in a database using SQLAchemy无法使用 SQLAlchemy 在数据库中创建表
【发布时间】:2023-01-29 16:20:12
【问题描述】:

我创建了 app.py 和表格.py 它们分别是主要的应用程序和用于定义数据库 [database.db] 表的文件。 我无法在 database.db 中创建表,可能是什么问题? 两者的代码如下

#app.py

from flask import Flask, render_template, request, session, redirect
from tables import db
from flask_session import Session
app = Flask(__name__)
app.config["SESSION_PERMANENT"] = False
app.config["SESSION_TYPE"] = "filesystem"
Session(app)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///database.db'
db.init_app(app)

@app.before_first_request
def create_tables():
db.create_all()
 @app.route("/")
def home():
return render_template("register.html")

#tables.py


from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()
class users (db.Model):
    users_key = db.Column(db.Integer, primary_key=True, autoincrement=True)
    username = db.Column(db.String(21), nullable=False)
    email = db.Column(db.String(31), nullable=False, unique=True)
    password = db.Column(db.String(61), nullable=False)

我希望在与 app.py 文件位于同一目录中的 database.db 文件中获取表。虽然我无法添加任何表格。

【问题讨论】:

    标签: python web-applications flask-sqlalchemy


    【解决方案1】:

    您必须创建数据库上下文并对其进行初始化。

    with app.app_context():
        db.create_all()
    

    还要确保从 flask 包中导入 Flask 模块,并从 tables.py 中的 flask_sqlalchemy 包中导入 SQLAlchemy。

    from flask import Flask
    from flask_sqlalchemy import SQLAlchemy
    
    app = Flask(__name__)
    app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///database.db'
    db = SQLAlchemy(app)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-07-09
      • 2021-06-14
      • 2022-06-22
      • 2015-06-06
      • 2020-12-21
      • 2019-07-10
      相关资源
      最近更新 更多