【问题标题】:Using SQLAlchemy how do I populate rows after creating the db using db.create_all()使用 SQLAlchemy 如何在使用 db.create_all() 创建数据库后填充行
【发布时间】:2016-12-18 08:16:34
【问题描述】:

我的 SQLAlchemy app.py 中有一个 create_all 调用

@app.before_first_request
def create_tables():
    db.create_all()

并在 user.py 模型文件中定义一个基本用户:

class UserModel(db.Model):
    __tablename__ = 'users'

    id = db.Column(db.Integer, primary_key = True)
    username = db.Column(db.String(80))
    password = db.Column(db.String(80))

    def __init__(self, username, password):
        self.username = username
        self.password = password

我想预填充一些默认数据,在这个例子中是一些基础用户:

    admin = self('admin', 'test')
    guest = self('guest', 'test')

我可以以某种方式将它们输入到 app.py 中吗?还是在另一个 create_data.py 类型的文件中?

【问题讨论】:

标签: python flask sqlalchemy flask-sqlalchemy


【解决方案1】:

你可以像这样创建一个 example_data.py 文件:

from user import UserModel

def db_load_example_data(app, db):
    admin = UserModel('admin', 'test')
    guest = UserModel('guest', 'test')
    with app.app_context():
        db.session.add(admin)
        db.session.add(guest)
        db.commit()

然后在你的启动脚本中你可以调用它

from example_data import db_load_example_data

db_load_example_data(app, db)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-24
    • 2019-03-13
    • 1970-01-01
    • 2021-05-25
    • 1970-01-01
    • 2012-07-16
    • 2020-12-21
    相关资源
    最近更新 更多