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

в 9:30, , рубрики: django, python, ruvds_статьи, Блог компании RUVDS.com, маркетплейс, маркетплейс ruvds, полезные советы, Разработка веб-сайтов

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

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"),
)

2. Используйте тег {% url %}

Вместо того, чтобы хардкодить ссылки, попробуйте использовать обратно совместимый тег {% url %}. Это даст вам абсолютный URL, но если проект будет перемещен, ссылки остануться актуальными.

По сути {% url %} берет имя представления и его параметры и делает реверсивный просмотр, чтобы вернуть запрошенный URL. Если вы внесете изменения в urls.py, ссылки не сломаются.

3. Используйте админку Django для ваших приложений на PHP

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

Эта система авторизации настолько хороша, что многие предлагают использовать ее как админку для приложений на PHP.

4. Используйте отдельный сервер для обработки статики

Django позволяет вам располагать статические файлы в dev-окружении, но не в вашем production-окружении.

Django спроектирован так, что бы спасти вас от себя самого. Если вы попытаетесь использовать статические файлы с того же экземпляра Apache, что обслуживает Django, вы потеряете в производительности.
Apache переиспользует процессы между каждым запросом, поэтому, если однажды процесс закешировал весь код и библиотеки для Django, они остаются в памяти. И если вы не используете этот процесс для того, чтобы
обработать запрос Django, вся эта память будет использована зря.

В случае если вы используете отдельный сервер (или virtualhost) для обработки статики, производительность вашего приложения не пострадает.

5. Используйте Django debug toolbar.

Инструменты для отладки несут неоценимую помощь в любом языке. Они ускоряют процесс разработки помогая находить ошибки и потенциальные проблемы которые могут возникнуть.

Django debug toolbar позволяет просмотреть все выполненные SQL запросы в процессе рендеринга представления и вы также можете просмотреть stacktrace для любого из них.

6. Django юнит-тестирование

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

7. Визуализация моделей

Установите Django Command Extensions и pygraphviz и затем используйте следующую команду чтобы получить удобную визуализацию моделей проекта в Django:

./manage.py graph_models -a -g -o my_project.png

8. Virtualenv

Virtualenv + Python = палочка-выручалочка. Virtualenv будет изолировать настройки Python/Django для каждого отдельного проекта. Это значит, что изменения одного сайта не затронут другие сайты. Также это может оказаться удобным, когда на сервере необходимо держать разные версии Django или python.

9. Используйте Memcache

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

10. Автозагрузка кастомных тегов, которые можно использовать во всех шаблонах

from django import template
template.add_to_builtins('project.app.templatetags.custom_tag_module')

Если добавить это в модуль который загружается по умолчанию (settings.py,urls.py,every app models.py), у вас будут доступны все теги и фильтры из вашего кастомного модуля в любом шаблоне, без использования {% load custom_tag_module %}.

Аргументом к template.add_to_builtins() может быть путь к любому модулю; ваш кастомный модуль не обязательно должен быть привязан к какому то определенному приложению.
Например, это так же может быть модуль расположенный в корневом каталоге проекта (например: 'project.custom_tag_module').

Стоит ли изучать Django в 2020?

Если вы начинающий программист, и задаетесь вопросом: должен ли я изучить Django? Короткий ответ — да.

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

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

Преимущества Django

1. Быстрый

Разработчики сделали фреймворк с учетом того, что бы он был простым и в то же время быстрым. Он содержит в себе библиотеки, которые позволят вам не изобретать колесо заново или создавать проект с нуля.

2. Безопасный

Когда речь заходит о безопасности, фреймворк позволяет не наступать на грабли и избежать многих проблем с безопасностью, таких как SQL-иньекции, XSS, CSRF, из-за возможных ошибок программиста.

3. Панель администрирования

В фреймворке сразу присутствует панель администрирования и система авторизации, которая позволяет сэкономить время на управлении пользователями, и создании отдельной панели администрирования для бэкенда.

4. Масштабируемый

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

5. Data science и аналитика

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

6. Поддержка сообществом

Вокруг Django существует довольно большое и активное сообщество, а сам фреймворк имеет богатую и удобную документацию.

Быстрый старт

Чтобы сразу быстро начать кодить на Джанго командой и тестировать, я собрал и выложил образ VPS в маркетплейсе с пустым проектом Django 3.1.3 и

  • http-сервером Gunicorn 20.0.4
  • Nginx 1.14.1 в качестве реверс-прокси
  • и сервером базы данных Postgresql 12.1.

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

Стоимость такого сервера будет 769 рублей в месяц – 538 рублей, при оплате за год.

И напишите свои любимые лайфхаки при работе с Django в комментариях — попробуем собрать пост советов.

Автор: oldadmin

Источник


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js