Веб-приложение, над которым я работаю, нуждается в первоначальной настройке или инициализации,
где хорошее место, чтобы поместить эту логику? Я не хочу выполнять проверку, если конфигурация / настройка существует в каждом запросе к / или перед любым запросом, так как это не является производительным.
Я думал о том, чтобы проверить, есть ли нормальная конфигурация при запуске приложения, затем изменить маршрут по умолчанию / на страницу настроек / настроек и изменить его обратно. Но это немного похоже на самоизменяющийся код.
Это необходимо, поскольку веб-приложению нужны настройки, а затем индексировать содержимое на основе этих настроек, которые занимают немного времени. Поэтому после выполнения настроек мне все еще нужно подождать, пока индексация не будет завершена. Таким образом, даже после того, как были выполнены настройки / настройки, любые последующие запросы должны будут видеть сообщение «ожидание индексации».
Я использую колбу, но я думаю, что это актуально и для Джанго.
РЕДАКТИРОВАТЬ: Я думаю, как это сейчас;
При запуске проверьте appconfig.py на наличие MY_SETTINGS, если его там нет
добавьте значение по умолчанию из config.py и поместите объект status = firstrun в app.config, а также
измените / route для настройки функции просмотра.
Функция просмотра настроек затем проверит объект app.config.status и выполнит
Настройка параметров по мере необходимости после ввода пользователя, когда настройки в порядке,
удалите app.config.status или измените его на «indexing», тогда у меня может быть функция before_request для проверки app.config.status, чтобы просто прошить сообщение об этом.
Или я мог бы использовать flask.g вместо app.config для хранения статуса?