Собрали в одном месте самые важные ссылки
читайте авторский блог
Веб-API – это двигатели, на которых основано большинство наших приложений. В течение многих лет REST был доминирующей архитектурой для API, но со временем у него стало проявляться множество недостатков. И на его замену было разработано GraphQL.
Когда я впервые начал увлекаться Django и веб-разработкой, хороший друг с немного большим опытом посоветовал мне не использовать логику в своих шаблонах «Шаблоны должны быть простыми».
Я действительно не понимал, что это значит, пока не начал страдать от последствий наличия логики в моих файлах .html. После трех лет работы с Django я теперь стараюсь держать бизнес-логику подальше не только от шаблонов, но и от представлений.
В этом посте я постепенно расскажу о наиболее рекомендуемых способах размещения бизнес логики и обрисую преимущества, которые предлагает каждый из них.
Веб представляет собой развивающуюся платформу с множеством проблем с обратной совместимостью. Новые методы веб-безопасности часто приходят от осознания того, что у старого функционала есть некоторые недостатки. Вместо того, чтобы нарушать работу старых сайтов, изменяя проблемный функционал, есть множество более безопасных вариантов развития. Вы можете улучшить безопасность сайта с помощью модификации заголовков HTTP.
Я руковожу отделом партнерской разработки (Partners Development) в сервисе бронирования отелей Ostrovok.ru. В этой статье я хотел бы рассказать про то, как на одном проекте мы использовали Django ORM.
В этой статье рассматривается процесс разработки CRUD RESTful API с использованием Django и Django REST Framework, который используется для быстрого создания API на основе моделей Django.
Появление современных библиотек JavaScript, таких как React.js и Vue.js, трансформировало front-end веб-разработку в лучшую сторону. Эти библиотеки поставляются с богатым набором функциональности, позволяя быстро создавать одностраничные приложения SPA, которые в основном представляют собой динамическую загрузку и отображение содержимого веб-страниц без полной перезагрузки браузера.
Допустим что сайт, которым пользуются ваши пользователи, написан на Joomla, но для создания нового продукта для вашей аудитории вы выбрали связку Python/Django. Как следствие, возникает необходимость использовать в Django учетные записи пользователей из базы данных Joomla. Проблема однако в том, что Joomla и Django используют разные алгоритмы хэширования паролей, поэтому просто скопировать учетные записи не получится. Почитав документацию Django, stack overflow и потратив некоторое время, получилось нижеописанное решение, которое по максимуму использует рекомендуемые практики разработки под Django.
Свободный перевод статьи "Modeling Polymorphism in Django With Python" В статье описано идея использования полиморфизма в моделях ORM Django то есть создание возможности изменения базовой структуры под конкретные задачи.
Рано или поздно перед разработчиками встаёт задача удаления ненужных данных. И чем сложнее сервис, тем больше нюансов необходимо учесть. В данной статье я расскажу, как мы реализовали «удаление» в базе данных с сотней связей. Читать дальше →
Django Formsets управляет сложными повторяющимися полями форм в представлении. Используя формуляры, вы можете узнать, сколько форм было изначально, какие были изменены, а какие должны быть удалены. Подобно формам и моделям форм, Django предлагает наборы моделей форм, которые упрощают задачу создания набора форм для формы, обрабатывающей несколько экземпляров модели.
Автор Channels ищет сменщика
В статье "Различные шаблоны для рендеринга разных типов контента в поисковой выдаче" было показано, как сделать рендеринг различных шаблонов в зависимости от того, какой тип контента отрисовывается в поисковой выдаче на сайте. При этом ключевым моментом являлось то, что не приходилось делать проверочные условия для выбор шаблона. Информация о шбалоне хранилась в переменной TEMPLATE_PREVIEW, через которую шаблон подставлялся в include тег в шаблоне Django. В данном способе есть один большой недостаток. Дело в том, что тег include при каждом своём вызове ищет шаблон. Его необходимо было как-то кэшировать, что и решается в данной статье.
Одним холодным зимним вечером, хотелось согреться в офисе и проверить теорию одного коллеги, что C++ vector мог бы быстрее справиться с задачей, чем CPython list.
В компании мы разрабатываем продукты на базе Django и случилось так, что нужно было обработать один большой массив словарей. Коллега предположил, что реализация на C++ была бы гораздо быстрее, а меня не покидало чувство, что Гвидо и сообщество наверное немного круче нас в Си и возможно уже решили и обошли все подводные камни, реализовав всё гораздо быстрее.
Для проверки теории, я решил написать небольшой тестовый файл, в котором решил прогнать в цикле вставку 1М словарей одинакового содержания в массив и в vector 100 раз подряд.
Результаты хоть и были ожидаемые, но так же и внезапные.
Если вы пишете тесты для веб-приложений, используя один из популярных фреймворков, например, Django или Flask, то стоит помнить о важных отличиях в написании и запуске таких тестов.
Представьте себе небольшой конвейер. По нему едут товары или какие-то детали, на которых важно распознавать текст (возможно, это некий уникальный идентификатор, а может, и что-то более интересное). Хорошим примером будут посылки. Работу конвейера дистанционно контролирует оператор, который отслеживает неполадки и в случае чего решает проблемы. Что может ему в этом помочь? Девайс на платформе Android Things может быть неплохим решением: он мобильный, легко настраивается и может работать через Wi-Fi. Мы решили попробовать использовать технологии ABBYY и узнать, насколько они подходят для таких ситуаций — распознавания текста в потоке на “нестандартных устройствах” из категории Internet of Things. Мы сознательно будем упрощать многие вещи, так как просто строим концепт
Веб-фреймворк Django подробно документирован на официальном сайте: там и теория, и справочная информация, и руководства для новичков. Однако, несмотря на качество, далеко не всем новичкам эта документация приходится по душе. Что ж, у вас есть два пути. Первый — записаться на обучающие курсы. Второй — в очередной раз заглянуть на полки интернет-магазинов. Этим мы сегодня и займёмся.
Возможно я плохо искал, но я не смог найти подробного руководства по созданию бота на python с применением фреймворка Django и подхода webhook, работающего на хостинге от российской компании. В большинстве материалов говориться о применении фреймворка Flask и использования бесплатных хостингов Heroku и PythonAnywhere. Опыт сообщества Хабр меня выручает, поэтому я решил в знак благодарности потратить время на написание данной статьи. Опишу полученный практический опыт, чтобы дать возможность всем кто в этом заинтересован сэкономить время и лучше понять как сделать бота на Python с применением фреймворка Django на своём хостинге, используя подход webhook.
Недавно нам с коллегами понадобилось реализовать прозрачную (SSO) авторизацию в нашем проекте. Сейчас довольно мало информации по теме особенно на русском языке. По этой причине решено было поделиться с потомками реализацией подобного функционала.
Итак задача заключалась в следующем: необходимо было настроить прозрачную авторизацию через GSSAPI от пользователя на сервер, а так же иметь потом возможность от имени этого пользователя ходить в БД.