首页 > 解决方案 > 为什么我的 Flask 应用程序没有在 SQLite 中创建我的模型?

问题描述

ELI5:当我从 CLI 运行 db.py 时,会创建 db.db 文件,但它是 0 KB,这让我认为架构没有创建。我该怎么做才能在数据库中创建模型?

db.py(编辑:2020-07-22 1007 CST)

from flask_sqlalchemy import SQLAlchemy

db = SQLAlchemy()

if __name__ == '__main__':
    from app import app

    db.init_app(app)

    app.app_context().push()

    from models import Property

    db.create_all()
    db.session.commit()

    home = Property(
        street_address="123 Valentine Dr",
        city = "Long Beach",
        state = "MS",
        postal_code = "39560",
        title = "Home"
    )

    db.session.add(home)
    db.session.commit()

models.py(编辑:2020-07-22 1007 CST) **

from db import db
import datetime


class Property(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(256), nullable=False)
    street_address = db.Column(db.String(256), nullable=False)
    city = db.Column(db.String(256), nullable=False)
    state = db.Column(db.String(256), nullable=False)
    postal_code = db.Column(db.String(256), nullable=False)
    timestamp = db.Column(db.DateTime, default=datetime.datetime.now)

    def __init__(self, title, street_address, city, state, postal_code):
        self.title = title
        self.street_address = street_address
        self.city = city
        self.state = state
        self.postal_code = postal_code

app.py(编辑:2020-07-24 12:01 CST)

from flask import Flask, render_template
from ll.ll import ll

app = Flask(__name__)

app.register_blueprint(ll, url_prefix="/ll")

app.config['SQLALCHEMY_DATABASE_URI'] = "sqlite:///db.db"

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

if __name__=='__main__':
    app.run(debug=True, port="5050")

标签: pythonflask-sqlalchemy

解决方案


推荐阅读