| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Python: Веб-разработка и фреймворки > [Django] Вызов проверки по определенному урлу |
| Автор: ecspertiza 2.8.2013, 08:45 | ||
День добрый, есть задача выполнять некоторую проверку при вызове определенного урла, например если урл начинается с
и собственно все что содержит api/ , например api/ api/auth/ api/soft/ и т.д. то нужно выполнить некоторую проверку, и в ней вернуть результат либо продолжить выполнение дальше. Конечно можно выполнять проверку в каждой ф-ции по отдельности. Но это дублирование кода и мне это не очень нравится. Можно ли как то написать проверку в одном месте, которая постоянно будет вызываться если в начале урла есть api/ ? |
| Автор: SoWa 21.8.2013, 20:12 |
| https://docs.djangoproject.com/en/dev/topics/http/middleware/ вам в помощь |
| Автор: bilbobagginz 5.9.2013, 18:07 |
| ecspertiza, я не уверен, что нужно вообще какие-то джанговые суперструменты, но может быть имеет смысл действительно заюзать модуль middleware. если я правильно понял механизм работы этого мидлвера, с т.з. управления рисками, я бы не хотел огрести с такими system wide компонентами: каждый запрос видимо будет обрабатываться каким-то обработчиком/хуком, и я уверен, что его можно написать так, что он будет
Поэтому, я бы (для начала) попробовал по методу KISS, т.е. попроще, шаблон - decorator в питоновом контексте. декорировать можно:
(Ессно, если время есть на такие игры) SoWa, миддлвер случаем не приклеивается ко всем запросам ? (судя по https://docs.djangoproject.com/en/dev/topics/http/middleware/#hooks-and-application-order таки да, он вроде как контекст-процессор, но только в слоях запросов а не обработки шаблонов) |