Осваиваю миграцию db. Сделана таблица user:
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(64), index=True, unique=True)
email = db.Column(db.String(120), index=True, unique=True)
password_hash = db.Column(db.String(128))
posts = db.relationship('Post', backref='author', lazy='dynamic')
def __repr__(self):
return '<User {}>'.format(self.username)
Хочу внести пользователя:
import app
from app import db
from app.models import User
u = User(username='admin', email='admin@example.com')
db.session.add(u)
db.session.commit()
В результате ошибка:
RuntimeError: Working outside of application context.
This typically means that you attempted to use functionality that needed
the current application. To solve this, set up an application context
with app.app_context(). See the documentation for more information.
Если обернуть в оболочку with app.app_context(), ошибка:
AttributeError: module 'app' has no attribute 'app_context'
В Pycharm прогнал код:
from flask import Flask
from app import db
from app.models import User
def create_app():
app = Flask(__name__)
with app.app_context():
u = User(username='admin', email='admin@example.com')
db.session.add(u)
db.session.commit()
Ошибок нет, но в таблицу юзера не добавляет.