未在文件系统上创建SQLAlchemy DB

时间:2019-05-20 17:23:38

标签: python sqlalchemy flask-sqlalchemy

在关闭此重复项之前,请查看该问题。

我正在使用以下ORM模型完成python教程。

from views import db
import datetime

class Task(db.Model):

    __tablename__ = "tasks"

    task_id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String, nullable=False)
    due_date = db.Column(db.Date, nullable=False)
    priority = db.Column(db.Integer, nullable=False)
    status = db.Column(db.Integer)

    def __init__(self, name, due_date, priority, status):
        self.name = name
        self.due_date = due_date
        self.priority = priority
        self.status = status

    def __repr__(self):
        return '<name {0}>'.format(self.name)

配置文件定义如下:

import os

basedir = os.path.abspath(os.path.dirname(__file__))

DATABASE = 'flasktaskr.db'
USERNAME ='admin'
PASSWORD = 'admin'
CSRF_ENABLED = True # cross site request forgery prevention
SECRET_KEY = 'secret' # used in conjunction wth CSR
SQLALCHEMY_TRACK_MODIFICATIONS = False
DATABASE_PATH = os.path.join(basedir, DATABASE)
SQLAlCHEMY_DATABASE_URI = 'sqlite:///' + DATABASE_PATH

该视图按如下所示初始化应用程序:

app = Flask(__name__)
app.config.from_object('_config')
db = SQLAlchemy(app)

在执行应用程序之前,必须使用以下方法创建数据库。该代码运行无异常,但是未创建数据库。我已经跟踪了代码,并验证了SQLAlCHEMY_DATABASE_URI设置正确。

from views import db
from models import Task
from datetime import date

from models import Task


db.create_all()

db.session.add(Task("Finish this tutorial", date(2019, 6, 22), 10, 1))
db.session.add(Task("Finish Real Python", date(2019, 6, 25), 10, 1))

db.session.commit()

基于此信息,什么会阻止在文件系统上创建我的数据库?

1 个答案:

答案 0 :(得分:0)

验证拼写是否仅在此帖子中,或者也在代码中:SQLAlCHEMY_DATABASE_URI应该为SQLALCHEMY_DATABASE_URI(所有大写字母