В настоящее время я изучаю Python и имею опыт работы с C #. Я продолжаю слышать о том, как делать что-то на Pythonic, чтобы воспользоваться динамической природой языка, и некоторые из них я получаю, а некоторые нет.
Я создаю сайт с Django, и мой подход к просмотру заключается в использовании классов. В настоящее время я думаю о том, чтобы иметь базовый класс, в котором есть кое-что о шаблоне и используемой модели. Это будет страница по умолчанию в стиле фанк 404 с поиском по сайту и прочим материалом, а затем все остальные страницы будут основаны на этом. Таким образом, каждая область сайта будет иметь свои собственные новости EG, и все функции, связанные с моделью, и фильтрация будут в этом классе с дополнительным классом для запросов HTML или AJAX. Таким образом, у вас будет что-то вроде этого:
\ сайт \ Common \ ViewBase
- \ Новости \ NewsBase (ViewBase)
- \ Новости \ HtmlView (NewsBase)
- \ Новости \ AJAXView (NewsBase)
URL-адреса будут отображаться так же, как http://tld/news/latest отображается на site.news.htmlview, а http://tld/news//to/ также будет отображаться на site.news.htmlview, но класс будет выяснять, что делать с дополнительными Титулы.
Это почти то же самое, что я делал бы в C #, но в учебнике по Django показано только использование методов для представлений, что заставляет меня задаться вопросом, не является ли это не очень питоническим решением?
Мысли
Редактировать: После того, как С.Лотт прокомментировал безопасность потоков, лучше ли оставить функции такими, какие они есть, и заставить их создать экземпляр класса и вызвать для него метод?
Я ищу место для размещения общего кода для каждого раздела сайта для фильтрации модели, аутентификации для сайта и т. Д.