Вы можете использовать blueprint
для организации и регистрации своих маршрутов.
По сути, у вас может быть такая структура папок:
app/ <-- your entire application folder
auth/ <-- blueprint package for /auth route
__init__.py <-- blueprint creation
routes.py <-- authentication routes
profile/
__init__.py <-- blueprint package for /profile route
routes.py <-- profile routes
__init__.py <-- ceate_app and blueprint registration
Под вашим пакетом маршрутов, например в папке auth
:
# app/auth/__init__.py
# this is initialize auth blueprint
from flask import Blueprint
bp = Blueprint('auth',__name__,)
from app.auth import routes
Затем вы можете поместить все свои authentication
маршруты в auth/routes.py
, но вместо использования app.route
вам нужно использовать bp.route
следующим образом:
# app/auth/routes.py
# this is where you can put all your authentication routes
from app.auth import bp
# notice here the route '/login' is actually prefixed with 'auth'
# because in the following code I added "url_prefix='/auth' " in the create_app() factory.
# the full routes will be 'auth/login' on your website.
@bp.route('/login', methods=['GET','POST'])
def login():
....your login code...
Тогда в вашем __init__.py
вы можете сделать это:
# app/__init__.py
from app.auth import bp as auth_bp
from app.profile import bp as profile_bp
def create_app(config):
app = Flask(__name__)
app.config.from_object(config)
app.register_blueprint(auth_bp,url_prefix='/auth')
app.register_blueprint(profile_bp,url_prefix='/profile')
Таким образом, все маршруты к yourdomain.com/auth/...
будут в app/auth/routes.py
; все маршруты до yourdomain.com/profile/...
будут в вашем app/profile/routes.py
.
Ознакомьтесь с этим замечательным руководством по Flask для получения более подробной информации:
Мега-учебник Flask от Мигеля Гринберга
Эта конкретная часть посвящена тому, как лучше организовать структуру приложения.
person
fusion
schedule
31.08.2020