Как правильно во Flask разделить роуты?

Есть роуты:

1) /
/login/
/logout/

2) /user/

3) /admin/

Хотелось бы получить 3 файла ( login.py , user.py, admin.py) с роутами и один файл для старта сервера run.py.

Как правильно это реализовать?
  • Вопрос задан
  • 1036 просмотров
Решения вопроса 1
Tark
@Tark
Pyramid'альный мир
> А можете показать как решает ту же задачу Flask-Classy ?

from flask import Flask, render_template as render
from index import IndexView
from user import UserView
from admin import AdminView

app = Flask(__name__)

IndexView.register(app)
UserView.register(app)
AdminView.register(app)

if __name__ == '__main__':
    app.run(debug=True)


index.py
class IndexView(FlaskView):
    route_base = '/'  # кажется, для IndexView по умолчанию / ... но не уверен.

    @route('/')
    def index(self):
        return render(...)

    @route('/login')
    def login(self):
        return render(...)

    @route('/logout')
    def logout(self):
        return render(...)


user.py
class UserView(FlaskView):
    # route_base = '/user'  # необязательно
    @route('/')
    def index(self):
        return render(...)

    @route('/<int:id>')
    def get_user(self, id):
        return render(...)


А для админки можно попробовать Flask-Admin.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы