В настоящее время я создаю внутреннее приложение с Flask для управления ресурсами для использования пользователями в организации.
Поскольку я использую Flask-SQLAlchemy, я решил использовать Flask-Admin для представления администраторабазы данных, но у меня возникают проблемы с защитой представлений.
Я пытаюсь использовать Flask-BasicAuth только для защиты представлений администратора, но поскольку маршрут генерируется автоматически, я не могу добавить @ basic-auth.requiredдекоратор к нему.Принудительное использование сайта Flask-BasicAuth блокирует конечные точки ресурса и, следовательно, не будет хорошим решением.
Попробовал что-то подобное, но это не работает:
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_admin import Admin
from flask_admin.contrib.sqla import ModelView
from flask_basicauth import BasicAuth
app = Flask(__name__)
db = SQLAlchemy(app)
basic_auth = BasicAuth(app)
admin = Admin(app)
class Module(db.Model):
__tablename__='Modules'
name = db.Column(db.String(30), unique=True, nullable=False)
@basic_auth.required
class AdminView(ModelView):
pass
admin.add_view(AdminView(Module, db.session))
TL;ДР: Администратор Flask предполагает, что я использую менеджер входа и сеанса.Flask BasicAuth предполагает, что я могу вручную объявлять маршруты.Нужно как-то их интегрировать, не блокируя конечные точки ресурса.