我正在尝试集成PostgreSQL和SQLAlchemy,但是SQLAlchemy.create_all()并未从我的模型中创建任何表。
我的代码:
from flask import Flask
from flask.ext.sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql+psycopg2://login:pass@localhost/flask_app'
db = SQLAlchemy(app)
db.create_all()
db.session.commit()
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), unique=True)
email = db.Column(db.String(120), unique=True)
def __init__(self, username, email):
self.username = username
self.email = email
def __repr__(self):
return '<User %r>' % self.username
admin = User('admin', 'admin@example.com')
guest = User('guest', 'guest@example.com')
db.session.add(admin)
db.session.add(guest)
db.session.commit()
users = User.query.all()
print users
但是我得到这个错误: sqlalchemy.exc.ProgrammingError: (ProgrammingError) relation "user" does not exist
我怎样才能解决这个问题?
您应该在create_all()
调用之前放置模型类,如下所示:
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql+psycopg2://login:pass@localhost/flask_app'
db = SQLAlchemy(app)
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), unique=True)
email = db.Column(db.String(120), unique=True)
def __init__(self, username, email):
self.username = username
self.email = email
def __repr__(self):
return '<User %r>' % self.username
db.create_all()
db.session.commit()
admin = User('admin', 'admin@example.com')
guest = User('guest', 'guest@example.com')
db.session.add(admin)
db.session.add(guest)
db.session.commit()
users = User.query.all()
print users
如果您的模型是在单独的模块中声明的,请在调用之前将其导入create_all()
。
说,User
模型在名为的文件中models.py
,
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql+psycopg2://login:pass@localhost/flask_app'
db = SQLAlchemy(app)
# See important note below
from models import User
db.create_all()
db.session.commit()
admin = User('admin', 'admin@example.com')
guest = User('guest', 'guest@example.com')
db.session.add(admin)
db.session.add(guest)
db.session.commit()
users = User.query.all()
print users
重要说明: 在初始化db
对象之后导入模型很重要,因为在models.py
_中,您还需要db
从此模块导入对象。
问题内容: 我的档案中包含以下模型listpull/models.py: 我打电话./run.py init,然后./run.py migrate然后./run.py upgrade,我看到迁移文件生成,但其空: 运行 listpull / init.py 更新 如果我通过运行,然后执行和,那么将获得以下架构: 不幸的是,迁移仍然无法进行。 问题答案: 当你调用命令Flask-Migrate(或实
我是Spring的开始者,请帮忙 实体 存储库: 控制器: 数据配置 : pom.xml文件 - 错误: 2016年8月29日下午3:33:04 org.apache.catalina.core。ApplicationContext日志
问题内容: 我是新手,似乎无法工作 可以在等程序中实现。当我尝试在程序中运行此语句时,出现了。 我在文档页面中检查了Derby Db Create Statements ,但是找不到这样的选择。 问题答案: 创建表,捕获并检查SQL状态代码。 完整的错误代码列表可以在这里 找到, 但我找不到 ;大概是 。 您需要的代码是。 只需运行一次代码并打印错误代码。不要忘记添加测试以确保代码有效。这样,您可
我有一个使用Spring Boot的中等规模项目,我正在尝试使用嵌入式H2创建我的第一个DataJpaTest,但我遇到了以下例外: 我已经尝试了这一点,并使用了一个模式。sql,还有这个和使用测试。测试/资源中的属性,以及其他答案。但什么都没用。我真的很困惑;这是我第一次在Spring Boot中遇到无法解决的问题。 我的实体类定义为: 关于如何强制Hibernate在H2中创建模式的任何建议?
我刚接触hibernate并在Spring5中使用它,我有一个配置类创建sessionFactory bean,但它不工作(创建),当我运行我的项目时,我得到这个错误: 异常为org.springframework.beans.factory.beanCreationException:创建com.t4b.project.pricebuy.configuration.hibernateConfig
这怎么了? 我有Windows10 Pro。所以,我有Docker Desktop并且我正在使用WSL2