Обновить
4.5

Django *

Фреймворк для веб-приложений на Python

Сначала показывать
Порог рейтинга
Уровень сложности

Масштабируемый Продакшн-реди Телеграм бот на Django

Время на прочтение6 мин
Количество просмотров40K

На хабре очень много статей о том, как создать простейшего Телеграм бота с кнопками и логикой. Есть инструкции, как это все запустить на сервере. В этой статье я расскажу, как делать масштабируемых ботов "для продакшена", которыми смогут пользоваться сотни тысяч пользователей.

Читать далее

Запуск Django сайта на nginx + Gunicorn + SSL

Время на прочтение4 мин
Количество просмотров62K

Для написания этой статьи ушло очень много сил и времени. Я натыкался на множество инструкций, как на английском, так и на русском языках, но как я понял, - они все были клонами оригинальной статьи на Digital Ocean. Спросите вы, почему я так считаю, а все потому, что все ошибки и неточности передаются с одного ресурса на другой без всяких изменений.

Читать далее

Делаем тесты частью приложения

Время на прочтение9 мин
Количество просмотров5.7K

Сегодня я собираюсь обсудить абсолютно новую для многих пользователей (особенно для питонистов) идею: интеграцию тестов в ваше приложение.

Итак, давайте начнем.

Читать далее

«Хитрый питон» Михаил Корнеев, Григорий Петров, Илья Беда и другие классные спикеры-тезисы выступлений на PyCon Weekend

Время на прочтение6 мин
Количество просмотров3.3K
Конференции PyCon – это способ присоединиться к дружной компании единомышленников. Общение с интересными и умными людьми, обмен опытом и возможность расширить круг профессиональных знакомств.

Участники пайкона не просто слушают доклады и «мотают на ус» лайфхаки и инсайты. Главное, для чего нужны офф-лайн конференции – это живое общение. А где еще можно сначала подискутировать со спикерами во время официальной части мероприятия, а потом обсуждать код за распитием кружки глинтвейна?

PyCon Weekend состоится уже через 2 недели (19-20 марта 2021). А пока мы попросили спикеров рассказать вам о своих докладах.


image

Михаил Корнеев
BestDoctor, создатель и автор канала «Хитрый питон» на You Tube


Тема доклада: как автоматические проверки помогают нам делать код лучше
«Как и любой растущий проект, мы столкнулись с несколькими проблемами:
— кода становится больше, он становится сложнее
— команда растет, приходят люди с разным опытом и привычками
— многие проблемы регулярно всплывают на код-ревью
Эти проблемы нельзя решить мгновенно и решить полностью, но за несколько лет в команде выработался хороший подход — если мы регулярно сталкиваемся с проблемой и ее проверку можно автоматизировать — нужно это сделать.
Подход не новый и кажущийся очевидным, но у многих команд просто не хватает времени, чтобы начать его внедрять. Я расскажу о том, как проверки устроены у нас, как начать внедрять с минимумом затрат и как сделать это частью процесса разработки»


Читать дальше →

Новое тестирование фичей в Django 3.2

Время на прочтение8 мин
Количество просмотров6.9K

Пару недель назад Django 3.2 выпустил свой первый альфа-релиз, а финальный релиз выйдет в апреле. Он содержит микс новых возможностей, о которых вы можете прочитать в примечаниях к релизу. Эта статья посвящена изменениям в тестировании, некоторые из которых можно получить на более ранних версиях Django с пакетами backport.

Читать далее

Архитектура в Django проектах — как выжить

Время на прочтение13 мин
Количество просмотров58K

Думаю, ни для кого не секрет, что в разговорах опытных разработчиков Python, и не только, часто проскальзывают фразы о том, что Django это зло, что в Django плохая архитектура и на ней невозможно написать большой проект без боли. Часто даже средний Django проект сложно поддерживать и расширять. Предлагаю разобраться, почему так происходит и что с Django проектами не так.

Читать далее

Зачем вам может понадобиться SITE_ID в настройках Django

Время на прочтение5 мин
Количество просмотров8.2K
КДПВ

Если вы не используете все возможности Django, то, очень вероятно, вы не пользуетесь SITE_ID. Этому способствуют как убогая официальная документация Sites framework, так и несогласованное с Sites развитие кода Django.

Предположу, что Sites скоро будет бездумно снесен свежими «разработчиками» Django, как это уже произошло с модулями Comments (Dj 1.6) или Formtools (Dj 1.8). А, пока этого не произошло, предлагаю вам поразмышлять о возможностях Django Sites framework.
Читать дальше →

Конвертеры маршрутов в Django 2.0+ (path converters)

Время на прочтение8 мин
Количество просмотров11K
Всем привет!

Маршрутизация в Django со второй версии фреймворка получила замечательный инструмент — конвертеры. С добавлением этого инструмента появилась возможность не только гибко настраивать параметры в маршрутах, но и разделять зоны ответственности компонентов.

Меня зовут Александр Иванов, я наставник в Яндекс.Практикуме на факультете бэкенд-разработки и ведущий разработчик в Лаборатории компьютерного моделирования. В этой статье я расскажу о конвертерах маршрутов в Django и покажу преимущества их использования.



Первое, с чего начну, — границы применимости:

  1. версия Django 2.0+;
  2. регистрация маршрутов должна выполняться с помощью django.urls.path.

Итак, когда к Django-серверу прилетает запрос, он сперва проходит через цепочку middleware, а затем в работу включается URLResolver (алгоритм). Задача последнего — найти в списке зарегистрированных маршрутов подходящий.

Для предметного разбора предлагаю рассмотреть следующую ситуацию: есть несколько эндпоинтов, которые должны формировать разные отчёты за определённую дату. Предположим, что эндпоинты выглядят так:
Читать дальше →

Настройка аутентификации JWT в новом проекте Django

Время на прочтение28 мин
Количество просмотров103K

Данная статья является сборкой-компиляцией нескольких (основано на первой) статей, как результат моих изучений по теме jwt аутентификации в джанге со всем вытекающим. Так и не удалось (по крайней мере в рунете) найти нормальную статью, в которой рассказывается от этапа создания проекта, startproject, прикручивание jwt аутентификации.

Читать далее

Ещё раз о производительности фреймворков Python для веб разработки

Время на прочтение2 мин
Количество просмотров12K
Недавно мне пришлось начинать проект нового веб сервиса, и я решил протестировать максимальную нагрузочную способность Django, а заодно сравнить её с Flask’ом и AIOHTTP. Результат показался мне неожиданным, поэтому я «просто оставлю» его тут.
Читать дальше →

Микросервисы на монолите

Время на прочтение3 мин
Количество просмотров10K

Всем привет! 

Скажу сразу, эта статья не про очередное переписывание монолита на микросервисы, а о применении микросервисных практик в рамках существующего проекта с использованием интересных, как мне кажется, подходов. Наверное, уже нет смысла объяснять, почему многие проекты активно используют микросервисную архитектуру. Сегодня в IT возможности таких инструментов как Docker, Kubernetes, Service Mesh и прочих сильно меняют наше представление об архитектуре современного приложения, вынуждая пересматривать подходы и переписывать целые проекты на микросервисы. Но так ли это необходимо для всех частей проекта? 

Читать далее

10 полезных советов для начинающих изучать Django

Время на прочтение5 мин
Количество просмотров22K


1. Используйте относительные пути в конфигурации


Не задавайте абсолютный путь в settings.py, это будет полезно, если вы будете в дальнейшем запускать проект из разных расположений, например при развертывании на другом веб-сервере, у которого пути будут другими. Используйте следующий код в settings.py если ваши шаблоны и статические файлы расположены внутри каталога проекта Django:

# settings.py
import os
PROJECT_DIR = os.path.dirname(__file__)
...
STATIC_DOC_ROOT = os.path.join(PROJECT_DIR, "static")
...
TEMPLATE_DIRS = (
    os.path.join(PROJECT_DIR, "templates"),
)
Читать дальше →

Что происходит, когда вы выполняете manage.py test?

Время на прочтение11 мин
Количество просмотров11K

Перевод статьи подготовлен специально для студентов курса «Python Web-Developer».

Вы запускаете тесты командой manage.py test, но знаете ли вы, что происходит под капотом при этом? Как работает исполнитель тестов (test runner) и как он расставляет точки, E и F на экране?

Когда вы узнаете, как работает Django, то откроете для себя множество вариантов использования, таких как изменение файлов cookie, установка глобальных заголовков и логирование запросов. Аналогично, поняв то, как работают тесты, вы сможете кастомизировать процессы, чтобы, например, загружать тесты в другом порядке, настраивать параметры тестирования без отдельного файла или блокировать исходящие HTTP-запросы.

В этой статье мы проведем жизненно важную настройку выходных данных ваших тестов, а еще сменим стиль отображения результатов выполнения тестов с точек и букв на эмодзи.

Читать далее

Ближайшие события

Поднимаем Django стек на MS Windows

Время на прочтение4 мин
Количество просмотров30K
image

В данной статье будет представлена подробная инструкция по установке и настройке программ Apache, Python и PostgreSQL для обеспечения работы Django проекта в ОС MS Windows. Django уже включает в себя упрощенный сервер разработки для локального тестирования кода, но для задач, связанных с продакшен, требуется более безопасный и мощный веб-сервер. Мы настроим mod_wsgi для взаимодействия с нашим проектом и настроим Apache в качестве шлюза в внешний мир.

Стоит отметить, что установка и настройка будет производиться в ОС MS Windows 10 с 32 разрядностью. Также 32 битная реакция будет универсальна и будет работать на 64 битной архитектуре. Если вам нужна 64 битная установка повторите те же действия для 64 битных дистрибутивов программ, последовательность действий будет идентична.
Читать дальше →

Логирование запросов к приложению Django

Время на прочтение20 мин
Количество просмотров16K


Привет, меня зовут Дмитрий Чернышов, я ведущий разработчик компании «БАРС Груп». Последние несколько лет среди прочих задач нам в команде приходится сталкиваться с необходимостью анализа производительности приложений на Django с большим количеством пользователей и постоянно меняющимися профилями нагрузки. В данной статье я хочу поделиться наработками, которые появились у нас в процессе работы.

Предыстория/Описание проблемы


В Django достаточно средств для того, чтобы организовать логирование запросов к приложению с целью получения ответов на следующие вопросы:

  • Какие запросы в среднем работают дольше всего с точки зрения пользователей?
  • Каких запросов выполняется больше всего?
  • Какие запросы создают больше всего запросов к СУБД?
  • В каких запросах самые длинные транзакции?
Читать дальше →

Как поставить Django на сервер heroku в 2020 году. 10 шагов

Время на прочтение3 мин
Количество просмотров16K
Решил поделиться с вами тем, как поставить проект написаный на Python/Django на сервер heroku. Heroku — это бесплатный хостинг для тестирования своих проектов. Если вам нужно посмотреть как действует проект в боевом режиме — вперед!

1. Надо пройти регистрацию на heroku. В этом нет ничего сложного, просто вводите данные, подтверждаете на почте аккаунт, и вперед.

2. Установка командной строки heroku., слева-вверху видим burger меню, клацаем по нему и выбираем — Documentation -> Python, нажимаем Get Start With Python. Дальше слева нажимаем Set Up и выбираем установку heroku console на вашу операционную систему, тут нет ничего сложного, просто устанавливаем как вам удобно и все.
Читать дальше →

Отношение один к одному: связывание модели пользователя с кастомной моделью профиля в Django

Время на прочтение5 мин
Количество просмотров8.9K
Перевод статьи подготовлен в преддверии старта курса «Web-разработчик на Python».





Пфф… Снова базы данных?



В реляционной базе данных есть три основных отношения:

  • Отношение «один-к-одному»;
  • Отношение «один-ко-многим»;
  • Отношение «многие-ко-многим».

В этой статье мы будем разбираться с первым из них – отношением «один-к-одному».
Читать дальше →

Настройка docker для django на mysql

Время на прочтение4 мин
Количество просмотров34K

В интернете много неактуальных статей, поэтому я подготовил эту публикацию. В основном при написании статьи опирался на пример настройки докера для джанго в документации докера.


Здесь будет описываться настройка докера для фреймворка django и базы данных mysql, которая будет храниться вне контейнера, благодаря чему можно будет не беспокоиться, что с нашим контейнером что-то случится.

Читать дальше →

Выбираем лучший бэкенд-фреймворк 2021 года

Время на прочтение7 мин
Количество просмотров69K
Недавно мы опубликовали статью, автор которой размышлял о том, какой язык программирования, JavaScript, Python или Go, лучше всего подойдёт для бэкенд-разработки в 2021 году. Сегодня мы представляем вашему вниманию перевод ещё одного материала того же автора. Здесь он пытается найти ответ на вопрос о том, на какой фреймворк для разработки серверных частей приложений стоит обратить внимание тем, кто хочет во всеоружии встретить 2021 год.


Читать дальше →

Шесть Python-пакетов, которые рекомендуется использовать в каждом веб-приложении на Django

Время на прочтение13 мин
Количество просмотров21K

image


Есть бесчисленное множество Python-пакетов, которые легко добавить в любой проект. Но также есть несколько пакетов, которые вы просто не можете не использовать в любом веб-приложении на Django, потому что они зарекомендовали себя как чрезвычайно полезные и экономящие время.


Мы решили сосредоточиться на тех пакетах, которые в конечном итоге вы будете устанавливать регулярно, и рассказать об установке, а также конфигурациях, необходимых для их приведения в состояние готовности к работе.


В то время как некоторые Python-пакеты предлагают потрясающую функциональность, необходимую для конкретного проекта, пакеты, обсуждаемые ниже, — наиболее ходовые из Django-пакетов.

Читать дальше →

Вклад авторов