, ( testdriven.io) Application Factory, db (, db = SQLAlchemy(app) db = SQLAlchemy() db.init(app) create_app()). Application Factory, , db.create_all(), / db.session.commit() .
, from project import create_app, db Application Factory .
.
1) db.create_all() Application Factory?
__init__ SQLAlchemy, , , SQLAlchemy, self.app = app. , Application Factory, , db.init_app(app). create_all(), app, , , get_app, reference_app, None, current_app > , Flask (. from flask import current_app), , None, , , , self.app, None, Application Factory, application not registered on db instance and no application bound to current context.
2) db.session.commit() db.create_all SQLAlchemy (, db = SQLAlchemy(app))? **
, , , , testdriven.io. db.session.commit(), Application Factory SQLAlchemy (, db = SQLAlchemy(app)) , create_all(app) .
import pytest
import os
import datetime
from flask import Flask, jsonify
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
db = SQLAlchemy(app)
@pytest.fixture
def app():
app = create_app()
db.create_all()
yield app
db.session.remove()
db.drop_all()
:
https://github.com/mitsuhiko/flask-sqlalchemy/blob/d71afea650e0186348d81f02cca5181ed7c466e9/flask_sqlalchemy/ init.py
http://flask-sqlalchemy.pocoo.org/2.1/contexts/