簡體   English   中英

無法使用 SQLAchemy 在數據庫中創建表

[英]Cannot Create tables in a database using SQLAchemy

我已經創建了 app.py 和 tables.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 文件中獲取表。 雖然我無法添加任何表格。

您必須創建數據庫上下文並對其進行初始化。

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

還要確保從 flask package 導入 Flask 模塊,從 tables.py 中的 flask_sqlalchemy package 導入 SQLAlchemy 模塊。

from flask import Flask
from flask_sqlalchemy import SQLAlchemy

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM