2016-12-18 1 views
1

У меня есть create_all вызов в моей SQLAlchemy app.pyИспользование SQLAlchemy как я заполнить строки после создания БД с помощью db.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?

+0

использование 'db.session.add()' или даже 'db.session.add_all ([admin, guest])' будет работать http://flask-sqlalchemy.pocoo.org/2.1/quickstart/#a-minimal-application – Deusdeorum

ответ

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) 
Смежные вопросы