【问题标题】:Failure to create database with flask_sqlalchemy使用 flask_sqlalchemy 创建数据库失败
【发布时间】:2020-03-21 14:58:49
【问题描述】:

请;有人可以告诉我这段代码有什么问题吗?我尝试使用 flask sqlalchemy 连接到我的 postgre sql 数据库,但我一直遇到 db is not defined 的错误。注意:所有模块均已成功安装和加载。

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql://postgres:....'

db = SQLAlchemy(app)

class Person(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.Text)
age = db.Column(db.Integer)

def __init__(self, name, age):
    self.name = name
    self.age = age

def __repr__(self):
    return "Name:{}\tAge:{}".format(self.name, self.age)

def create_database():
    db.create_all()

    print('Database created....')

if __name__ == "__main__":
    create_database() 

【问题讨论】:

    标签: postgresql flask flask-sqlalchemy


    【解决方案1】:

    首先为sqlalchemy_utils 做一个点子,即pip install sqlalchemy_utils

    然后,

    您需要使用引擎来创建数据库:

    from sqlalchemy import create_engine
    from sqlalchemy_utils import database_exists, create_database
    
    engine = create_engine("postgres://localhost/somedb")
    if not database_exists(engine.url):
        create_database(engine.url)
    
    print(database_exists(engine.url))
    

    【讨论】:

    • 谢谢您的关心,我按照您说的方式尝试了您的代码,但我仍然遇到未定义变量错误。
    • 这里是错误:如果不是 database_exists(engine.url): NameError: name 'engine' is not defined,我真的不知道是什么问题。
    • 你为这个库安装了 pip 吗?
    猜你喜欢
    • 1970-01-01
    • 2022-10-25
    • 2022-11-23
    • 1970-01-01
    • 1970-01-01
    • 2021-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多