Flask - перенос моделей из чертежей - PullRequest
0 голосов
/ 11 сентября 2018

У меня проблемы с созданием модульного приложения с использованием Flask с использованием чертежей.Я не уверен, как перенести модели, определенные в чертежах.

Мое приложение выглядит следующим образом:

- app 
  - __init__.py 
    - user 
      __init__.py 
      models.py 

app.__init__.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/.__init__.py:

from flask import Blueprint

bp = Blueprint('user', __name__)

user/models.py:

from app import db


class User(db.Model):
    user_id = db.Column(db.Integer, primary_key=True)
    first_name = db.Column(db.String(128))
    last_name = db.Column(db.String(128))
    user_name = db.Column(db.String(120))
    password_hash = db.Column(db.String(220))

    def __repr__(self):
        return '<User {}>'.format(self.email)

При попытке запустить flask db migrate ... модели не обнаруживаются, и я думаю, что у меня какая-то круговая зависимость.

Может кто-нибудь объяснить, как это сделать правильно?

Ответы [ 2 ]

0 голосов
/ 12 сентября 2018

Пользовательская модель (user / models.py) должна быть импортирована где-то в приложении, попробуйте импортировать ее в файл чертежа (user / __ init__.py)

from flask import Blueprint
from app.user.models import User

bp = Blueprint('user', __name__)
0 голосов
/ 11 сентября 2018
    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')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...