Я структурировал свое приложение следующим образом, используя чертежи. Файлы просмотра очень большие, поэтому я разделил их на несколько файлов.
myapp/
__init__.py
admin/
__init__.py
views1.py
views2.py
views3.py
views4.py
static/
templates/
models/
models.py
myapp / init .py
from flask import Flask
from myapp.admin import admin_bp
app = Flask(__name__)
app.register_blueprint(admin_bp)
myapp / admin / __ init__.py
from flask import Blueprint, g
from flask_login import current_user
admin_bp = Blueprint('admin', __name__, template_folder='templates')
@admin_bp.before_request
def load_logged_in_user():
if current_user and not current_user.is_anonymous:
user_name = current_user.user_name
g.user = Account.get(user_name)
from . import views1, views2, views3, views4
myapp / admin / view1.py
from . import admin_bp
@admin_bp.route('/hello', methods=['GET'])
def hello():
return 'Hello'
Это работает без каких-либо определенных c ошибок. Но эти файлы представления и файл admin / __ init__.py импортируют друг друга (круговая зависимость), чего следует избегать. Как структурировать мое приложение, используя чертежи без круговой зависимости?