Python Flask-从蓝图迁移模型
我在使用蓝图创建模块化应用程序时遇到问题。我不知道如何迁移蓝图中定义的模型 我的应用程序如下所示:Python Flask-从蓝图迁移模型,python,flask,Python,Flask,我在使用蓝图创建模块化应用程序时遇到问题。我不知道如何迁移蓝图中定义的模型 我的应用程序如下所示: - app - __init__.py - user __init__.py models.py app.\uuuu init\uuuuuuu.py如下所示: from flask import Flask from flask_sqlalchemy import SQLAlchemy from config import Config from f
- app
- __init__.py
- user
__init__.py
models.py
app.\uuuu init\uuuuuuu.py如下所示:
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from config import Config
from flask_migrate import Migrate
from app.auth import bp as user_bp
db = SQLAlchemy()
app = Flask(__name__)
app.config.from_object(Config)
app.register_blueprint(user_bp, url_prefix='/user')
migrate = Migrate(app, db)
from app.auth.models import User
user/.\uuuu init\uuuuu.py:
user/models.py:
尝试运行flask db migrate时。。。没有检测到任何模型,我想我有某种循环依赖性
有人能解释一下怎么做吗 用户模型User/models.py应该导入到应用程序的某个地方,尝试导入到蓝图文件User/\uuuu init\uuuu.py中
app.py
from flask import Flask
from flask_restful import Resource, Api
from user import user_blueprint
from flask_cors import CORS
app = Flask(__name__)
api = Api(app)
app.register_blueprint(user_blueprint)
cors = CORS(app, resources={r"/*": {"origins": "*"}})
if __name__ == '__main__':
app.run(debug=True)
model/user.py
from sqlalchemy import Column, INTEGER, String
class User(Base):
__tablename__ = 'USER'
__table_args__ = {'schema': 'MAPPING'}
ID = Column(INTEGER(11), primary_key=True)
FIRST_NAME = Column(String(255), nullable=False, server_default=text("''"))
LAST_NAME = Column(String(255), nullable=False, server_default=text("''"))
EMAIL = Column(String(255), nullable=False, server_default=text("''"))
route/user_route
from flask import Blueprint, jsonify, request
from flask_restful import Resource, Api
user_blueprint = Blueprint('app/', __name__)
user_api = Api(user_blueprint, prefix='/')
class User(Resource):
def get(self):
db_conn = //db connection Object
results = // your query
db_conn.close()
return jsonify(results)
user_api.add_resource(User, '/user')
from flask import Blueprint
from app.user.models import User
bp = Blueprint('user', __name__)
你能解释一下吗?我已将此添加到user/_init.py,并将主_init__py文件中的用户蓝图导入移动到数据库声明之后,但迁移仍然没有接收到这一点。我猜你忘了将应用程序传递给SQLAlchemy构造函数,如果你没有使用应用程序工厂,你必须将应用程序实例传递给SQLAlchemy。在应用声明之后尝试使用db=SQLAlchemyapp。
app.py
from flask import Flask
from flask_restful import Resource, Api
from user import user_blueprint
from flask_cors import CORS
app = Flask(__name__)
api = Api(app)
app.register_blueprint(user_blueprint)
cors = CORS(app, resources={r"/*": {"origins": "*"}})
if __name__ == '__main__':
app.run(debug=True)
model/user.py
from sqlalchemy import Column, INTEGER, String
class User(Base):
__tablename__ = 'USER'
__table_args__ = {'schema': 'MAPPING'}
ID = Column(INTEGER(11), primary_key=True)
FIRST_NAME = Column(String(255), nullable=False, server_default=text("''"))
LAST_NAME = Column(String(255), nullable=False, server_default=text("''"))
EMAIL = Column(String(255), nullable=False, server_default=text("''"))
route/user_route
from flask import Blueprint, jsonify, request
from flask_restful import Resource, Api
user_blueprint = Blueprint('app/', __name__)
user_api = Api(user_blueprint, prefix='/')
class User(Resource):
def get(self):
db_conn = //db connection Object
results = // your query
db_conn.close()
return jsonify(results)
user_api.add_resource(User, '/user')
from flask import Blueprint
from app.user.models import User
bp = Blueprint('user', __name__)