瓶sqlalchemy.exc.operational错误:(OperationalError)尝试使用SQLAlchemy更新数据库时没有此类表

2024-04-26 13:53:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我刚接触Flask,在设置一个非常基本的Flask应用程序时遇到了一些问题。 现在,我试图让用户在主页上提交一个表单,然后将该表单保存到SQL数据库中。在

但是,当用户提交表单时,我得到以下错误

sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) no such table: contact [SQL: 'INSERT INTO contact (name, email) VALUES (?, ?)'] [parameters: ('aaa', 'aaa')] (Background on this error at: http://sqlalche.me/e/e3q8)

相关代码如下:

应用程序/模型.py在

^{pr2}$

应用程序/__init__.py

from flask import Flask
from config import Config
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate
app = Flask(__name__)
app.config.from_object(Config)
db = SQLAlchemy(app)
migrate = Migrate(app, db)
from app import routes, models

应用程序/配置.py在

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


class Config(object):
    SECRET_KEY = os.environ.get('SECRET_KEY') or 'some-secret-key'
    SQLALCHEMY_DATABASE_URI = os.environ.get('DATABASE_URL') or 'sqlite:///' + os.path.join(basedir, 'app.db')
    SQLALCHEMY_TRACK_MODIFICATIONS = False
    enter code here

我可能会错在哪里?我要打电话吗全部创建数据库()在什么地方?如果是,在哪里?在

谢谢!在

编辑:我也跑过

flask db init
flask db migrate
flask db upgrade

Tags: path用户frompyimportconfigapp应用程序
2条回答

在中创建模型模型.py公司名称:

from __init__.py import db

class ContactModel(db.Model):
    __tablename__ = 'contact'

    id = db.Column(db.Integer, primary_key = True)
    name = db.Column(db.String(120))
    email = db.Column(db.String(120))

    def save_to_db(self):
        db.session.add(self)
        db.session.commit()

然后在init中.py:

^{pr2}$

如果您使用flask migrate library,您应该运行下面的命令来创建和应用迁移。将创建数据库和表。在

flask db migrate
flask db upgrade

在运行这些命令之前,您应该创建模型。Models对象表示数据库中的表。对你来说,可能是这样的

^{pr2}$

相关问题 更多 >