Как стать автором
Поиск
Написать публикацию
Обновить
6.73

Django *

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

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

Поднимаем 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.7K
Перевод статьи подготовлен в преддверии старта курса «Web-разработчик на Python».





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



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

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

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

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

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

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


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

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

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

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


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

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

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

image


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


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


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

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

Как Django может обрабатывать 100 миллионов запросов в день

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

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


Действительно, Python не очень «быстрый» язык программирования, однако он прост, удобен и люди его любят. С точки зрения производительности, он не может быть таким же быстрым, как Go или Node.js, но это становится несущественным, если рассматривать современные инфраструктуры и модульную разработку.


Поскольку я уже несколько лет варюсь в этом «котле разработки на Django», я пришел к нескольким ценным выводам, которыми собираюсь с вами поделиться.

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

Как мы автоматизировали весь жизненный цикл серверов

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

Привет, Хабр! Меня зовут Алексей Назаров. Я занимаюсь автоматизацией в отделе администрирования инфраструктурных систем в Национальной системе платежных карт (АО НСПК) и хотел рассказать немного о наших внутренних продуктах, которые помогают нам развиваться.


Если вы еще не читали пост про нашу инфраструктуру, то самое время! После прочтения этого поста я бы хотел рассказать о некоторых внутренних продуктах, которые мы разработали и внедрили.


image

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

Как в компании развивался Python. Доклад Яндекса

Время на прочтение19 мин
Количество просмотров16K
13 лет назад начался эксперимент по использованию Python в больших сервисах Яндекса. Эксперимент получился удачным (кто бы сомневался!) и Python начал свое победное поползновение по сервисам компании. Яндекс.Афиша, Яндекс.Погода — через некоторое время сервисов стало очень много. Вместе с ними начали появляться «лучшие практики» и «устоявшиеся подходы» к решению задач.


В докладе я вспомнил эволюцию Python в компании: от первых сервисов, запаковывавшихся в deb-пакеты и раскатывавшихся на голое железо, до непростого монорепозитория с собственной системой сборки и облаком. Еще в рассказе будут Django, Flask, Tornado, Docker, PyCharm, IPv6 и другие штуки, с которыми мы сталкивались на протяжении этих лет.
Читать дальше →

Сравнение разных django filter на примере демо базы PostgreSQL

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

Вместо предисловия


Началось всё с того, что мне предложили в рамках предмета "Основы веб-программирования" поучаствовать в проекте, вместо проделывания лабораторных работ и курсовой, поскольку я заявил о том, что хотел быть делать нечто отдалённое от общего курса (и так уже достаточно знаний было по связке DRF + Vue, хотелось чего-то нового). И вот в одном из своих PR на github я решил использовать полнотекстовый поиск (задание намекало на это) для фильтрации контента, что заставило меня обратиться к документации Django в поисках того, каким же образом лучше это дело реализовать. Думаю, вы знаете большую часть из тех методов, что были там предложены (contains, icontains, trigram_similar). Все они подходят для каких-то конкретных задач, но не слишком хороши в, именно, полнотекстовом поиске. Пролистав чуть ниже, я наткнулся на раздел, в котором говорилось о взаимодействии Django и Pgsql для реализации document-based поиска, что меня привлекло, поскольку в постгре встроен инструмент для реализации этого самого [полнотекстового] поиска. И я решил, что скорее всего, django просто предоставляет API к этому поиску, исходя из чего такое решение должно работать и точнее и быстрее, чем любые другие варианты. Преподаватель мне не слишком поверил, мы с ним поспорили, и он предложил провести исследование на эту тему. И вот я здесь.

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

Что бы я хотел знать когда начинал изучать Django? — очень общий взгляд

Время на прочтение7 мин
Количество просмотров34K
Здесь на Хабре много различных инструкций по использованию Django. Эти инструкции часто включают много кода и представляют последовательность шагов, которые нужно сделать, чтобы создать проект.

Когда я начинал изучать Django и Wagtail по таким инструкциям, меня часто смущало, что пара команд создает кучу непонятных файлов (особенно на самом старте). Последующее описание этих файлов в инструкциях содержало слишком много деталей, которые трудно было усвоить за раз.

В этом посте я бы хотел посмотреть на Django с очень «философского вида» — минимум кода, максимум общих фактов. Думаю, что такой взгляд поможет тем, кто хочет начать изучать Django но теряется на старте.

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

Хранение изображений с помощью Django/Django REST

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

Проблема


Мне в ходе разработки часто приходится работать с моделями, в которых должны быть изображения. Для удобной организации я использую древовидную структуру папок. В целом, Django предоставляет инструмент для работы с изображениями. Например, вот вопрос на Хабр Q&A о том, как работать с пикчами в Django: использовать ImageField


class Article(models.Model):
     title = models.CharField(max_length=255)
     content = models.TextField()
     img = models.ImageField(upload_to='/article', height_field=100, width_field=100)

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


image

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

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

Django: один пользователь для всего

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

Проблема


Всем привет. При разработке API для очередного веб-портала я взял свой привычный стек:


  • Django
  • django-rest-framework

Но в этот раз стояла довольно непривычная задача — сделать одну User модель, которая может иметь несколько разных профилей (Исполнитель, Заказчик). И наличие каждого из профилей дает разные полномочия на работу с одними и теми же ресурсами.


Такой подход позволяет пользователям не заводить несколько учетных записей для каждой роли, что зачастую было бы невозможно, ввиду ограничений на модель: уникальный email или номер телефона.


Итак, опишем возникшие перед нами проблемы:


  1. Один пользователь – несколько профилей.
  2. Как организовать права каждого из профилей.
  3. Доступ к одним тем же ресурсам от разных профилей.

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

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

Простое распознавание лица «на лету» в Django

Время на прочтение2 мин
Количество просмотров5.9K
Доброго дня!

Меня зовут Соболев Андрей и сегодня мы с вами создадим простую «плюшку» к Django, которая будет проверять, что на фотографии именно лицо человека (что бывает полезно в куче ситуаций).

Для этого нам понадобится OpenCV и 5 минут свободного времени. Поехали.
Читать дальше →

Django ORM для начинающих | Оптимизируем запросы

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


Django ORM (Object Relational Mapping) является одной из самых мощных особенностей Django. Это позволяет нам взаимодействовать с базой данных, используя код Python, а не SQL.
Based on schegel.net

Для демонстрации опишу такую модель:

from django.db import models

class Blog(models.Model):
    name = models.CharField(max_length=250)
    url = models.URLField()

    def __str__(self):
        return self.name

class Author(models.Model):
    name = models.CharField(max_length=250)

    def __str__(self):
        return self.name

class Post(models.Model):
    title = models.CharField(max_length=250)
    content = models.TextField()
    published = models.BooleanField(default=True)
    blog = models.ForeignKey(Blog, on_delete=models.CASCADE)
    authors = models.ManyToManyField(Author, related_name="posts")
Читать дальше →

Асинхронные задания в Django с Celery

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




Если в вашем приложении есть какой-то длительный процесс, вы можете обрабатывать его не в стандартном потоке запросов/ответов, а в фоновом режиме.

К примеру, в вашем приложении пользователь должен отправить картинку-миниатюру (которую, скорее всего, нужно будет отредактировать) и подтвердить адрес электронной почты. Если ваше приложение обрабатывает изображение, а потом отправляет письмо для подтверждения в обработчике запросов, то конечному пользователю придется зачем-то ждать завершения выполнения обеих задач перед тем, как перезагрузить или закрыть страницу. Вместо этого, вы можете передать эти операции в очередь задач и оставить на обработку отдельному процессу, чтобы немедленно отправить пользователю ответ. В таком случае, конечный пользователь сможет заниматься другими делами на стороне клиента во время выполнения обработки в фоновом режиме. Ваше приложение в таком случае также сможет свободно отвечать на запросы других пользователей и клиентов.
Читать дальше →

Интеграция .pre-commit hook в Django проект

Время на прочтение5 мин
Количество просмотров18K
Доброго дня!

Меня зовут Соболев Андрей и сегодня я вам расскажу как мы приготовили .pre-commit hook на нашем проекте.

Вступление


Для начала пару слов, о том что такое в целом хуки (hooks) и для чего они могут быть нужны. Git «из коробки» предоставляет инструмент, который умеет запускать ваши скрипты при наступлении какого-либо события (к примеру пуш на сервер и т.п.)

.pre-commit это удобная надстройка над дефолтным git pre-commit hook, которая запускает скрипты описанные в .pre-commit-config.yaml перед созданием коммита. В теории звучит просто, перейдем к практике.
Читать дальше →

Авторизация пользователя при помощи Starlette + Vue.js

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

Вступление




Задача — создать пример авторизации пользователя с использованием фреймворков Starlette (https://www.starlette.io/) и Vue.js *, который был бы максимально комфортным разработчикам Django для «миграции» в асинхронный стек.

Почему Starlette? В первую очередь скорость. Starlette ультимативно быстр, и в тестах уступает только BlackSheep (https://pypi.org/project/blacksheep/). Во вторых Starlette весьма прост и писать на нем в силу его продуманности легко и приятно.

В качестве ORM мы будем использовать Tortoise ORM (со моделями и выборками «аля Django ORM»).

В качестве сессионного механизма мы будем использовать JWT.

* Описание фронтенда на Vue.js не входит в данную заметку.
Читать дальше →

Пилим веб-опросник как у Meduza: пошаговый гайд для начинающих

Время на прочтение6 мин
Количество просмотров30K
Меня зовут Егор, я Full-stack разработчик в Leader-ID. В этой статье я хочу поделиться простым рецептом по созданию красивого и удобного веб-опросника наподобие тех, что делает Meduza. Он умеет показывать статистику после ответа на отдельные вопросы, подсчитывать общий балл, выдавать комментарии, выгружать данные для анализа и шарить результаты в соцсети. Для реализации этой задачи я выбрал Django, DRF, Python и базу данных PostgreSQL.



Все детали — под катом.
Читать дальше →

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