Framework django python: The web framework for perfectionists with deadlines

Руководство по Django

Руководство по Django

Последнее обновление: 26.08.2022

Содержание руководства по созданию веб-приложений на языке Python с помощью фреймворка Django.

  1. Глава 1. Введение в Django

    1. Что такое Django

    2. Установка и настройка Django

    3. Создание первого проекта

    4. Создание первого приложения

  2. Глава 2. Представления и маршрутизация

    1. Обработка запроса

    2. Определение маршрутов и функции path и re_path

    3. Получение данных запроса. HttpRequest

    4. HttpResponse и отправка ответа

    5. Параметры представлений

    6. Вложенные маршруты и функция include

    7. Параметры строки запроса

    8. Переадресация и отправка статусных кодов

    9. Отправка json

    10. Отправка и получение кук

  3. Глава 3. Шаблоны

    1. Создание и использование шаблонов

    2. Передача данных в шаблоны

    3. Встроенные теги шаблонов

    4. Фильтры шаблонов

    5. Статические файлы

    6. TemplateView

    7. Конфигурация шаблонов

    8. Расширение шаблонов и фильтр extends

    9. Вложенные шаблоны и фильтр include

  4. Глава 4. Работа с формами

    1. Отправка форм

    2. Определение форм Django

    3. Типы полей формы

    4. Настройка формы и ее полей

    5. Валидация данных

    6. Детальная настройка полей формы

    7. Стилизация полей форм

  5. Глава 5. Модели

    1. Подключение к базе данных

    2. Создание моделей

    3. Типы полей моделей

    4. QuerySet API

    5. Создание и получение объектов модели

    6. Редактирование и удаление объектов модели

    7. Фильтрация

    8. values и values_list и сортировка

    9. Операции с множествами

    10. Получение отдельных объектов и проверка их наличия

    11. Агрегатные операции

    12. Выполнение SQL-выражений

    13. CRUD. Все базовые операции с моделями в веб-приложении

    14. Отношение один ко многим (One to Many)

    15. Практический пример связи один ко многим

    16. Отношение многие ко многим (Many to Many)

    17. Отношение многие ко многим (Many to Many)

    18. Отношение один к одному (One to one)

YooMoney:

410011174743222

Перевод на карту

Номер карты:

4048415020898850

Django — фреймворк на Python

Django — это программный каркас с богатыми возможностями, подходящий для разработки сложных сайтов и веб-приложений, написанный на языке программирования Python.

Django — фреймворк для веб-приложений на языке Python. Один из основных принципов фреймворка — DRY (don’t repeat yourself). Веб-системы на Django строятся из одного или нескольких приложений, которые рекомендуется делать отчуждаемыми и подключаемыми. Это одно из заметных архитектурных отличий этого фреймворка от некоторых других (например, Ruby on Rails). Также, в отличие от многих других фреймворков, обработчики URL в Django конфигурируются явно (при помощи регулярных выражений), а не автоматически задаются из структуры контроллеров.

Django проектировался для работы под управлением Apache (с модулем mod_python) и с использованием PostgreSQL в качестве базы данных. В настоящее время, помимо PostgreSQL, Django может работать с другими СУБД: MySQL (MariaDB), SQLite, Microsoft SQL Server, DB2, Firebird, SQL Anywhere и Oracle. Для работы с базой данных Django использует собственный ORM, в котором модель данных описывается классами Python, и по ней генерируется схема базы данных.

Архитектура Django похожа на «Модель-Представление-Контроллер» (MVC). Контроллер классической модели MVC примерно соответствует уровню, который в Django называется Представление (View), а презентационная логика Представления реализуется в Django уровнем Шаблонов (Templates). Из-за этого уровневую архитектуру Django часто называют «Модель-Шаблон-Представление» (MTV).

Первоначально разработка Django велась для обеспечения более удобной работы с новостными ресурсами, что достаточно сильно отразилось на архитектуре: фреймворк предоставляет ряд средств, которые помогают в быстрой разработке веб-сайтов информационного характера. Например, разработчику не требуется создавать контроллеры и страницы для административной части сайта, в Django есть встроенное приложение для управления содержимым, которое можно включить в любой сайт, сделанный на Django, и которое может управлять сразу несколькими сайтами на одном сервере. Административное приложение позволяет создавать, изменять и удалять любые объекты наполнения сайта, протоколируя все совершённые действия, и предоставляет интерфейс для управления пользователями и группами (с пообъектным назначением прав).

Веб-фреймворк Django используется в таких крупных и известных сайтах, как Instagram, Disqus, Mozilla, The Washington Times, Pinterest, lamoda и др.

Некоторые возможности Django:

  • ORM, API доступа к БД с поддержкой транзакций
  • встроенный интерфейс администратора, с уже имеющимися переводами на многие языки
  • диспетчер URL на основе регулярных выражений
  • расширяемая система шаблонов с тегами и наследованием
  • система кеширования
  • интернационализация
  • подключаемая архитектура приложений, которые можно устанавливать на любые Django-сайты
  • «generic views» — шаблоны функций контроллеров
  • авторизация и аутентификация, подключение внешних модулей аутентификации: LDAP, OpenID и прочие.
  • система фильтров («middleware») для построения дополнительных обработчиков запросов, как например включённые в дистрибутив фильтры для кеширования, сжатия, нормализации URL и поддержки анонимных сессий
  • библиотека для работы с формами (наследование, построение форм по существующей модели БД)
  • встроенная автоматическая документация по тегам шаблонов и моделям данных, доступная через административное приложение

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

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

Начало работы с Django | Django

Установите Django

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

Руководство по установке Django

Напишите свое первое приложение Django

Уже установили Django? Хороший. Теперь попробуйте этот учебник, который поможет вам создать базовое приложение для опроса. Он состоит из двух частей:

  1. Общедоступный сайт, позволяющий людям просматривать опросы и голосовать в них.
  2. Административный интерфейс, позволяющий добавлять, изменять и удалять опросы.

Пройти обучение

Присоединиться к сообществу

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

Присоединяйтесь к нам

  • Объектно-реляционный преобразователь

    Полностью определяйте свои модели данных в Python. Вы бесплатно получаете многофункциональный динамический API для доступа к базе данных, но при необходимости вы все равно можете писать SQL.

    Подробнее

     из моделей импорта django.db
    Группа класса (модели.Модель):
        """Модель рок-группы."""
        имя = модели.CharField(max_length=200)
        can_rock = models.BooleanField (по умолчанию = True)
    Член класса (модели.Модель):
        """Модель участника рок-группы."""
        name = models.CharField("Имя участника", max_length=200)
        инструмент = модели.CharField(выборы=(
                («г», «гитара»),
                («б», «бас»),
                («д», «Барабаны»),
            ),
            максимальная_длина=1
        )
        группа = модели.ForeignKey("Группа")
          
     
  • URL-адреса и просмотры

    Чистая и элегантная схема URL-адресов является важной деталью высококачественного веб-приложения. Django поощряет красивый дизайн URL-адресов и не добавляет ничего лишнего в URL-адреса, такие как . php или .asp.

    Чтобы разработать URL-адреса для приложения, вы создаете модуль Python, который называется URLconf. Подобно оглавлению вашего приложения, оно содержит простое сопоставление между шаблонами URL и вашими представлениями.

    Подробнее

     из пути импорта django.urls
    от . импорт просмотров
    URL-шаблоны = [
        path('bands/', views.band_listing, name='band-list'),
        path('bands//', views.band_detail, name='band-detail'),
        path('группы/поиск/', views.band_search, name='группа-поиск'),
    ]
          
     
     из рендеринга импорта django.shortcuts
    от bands.models импорт Группа
    def band_listing (запрос):
        """Обзор всех групп."""
        полосы = Band.objects.all()
        return render(запрос, 'bands/band_listing.html', {'bands': bands})
          
     
  • Шаблоны

    Язык шаблонов

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

    Подробнее

     
      <голова>
        Список групп
      
      <тело>
        

    Все диапазоны

    <ул> {% для полосы в полосах %}
  • {{ band.name }} {% if band.can_rock %}

    Эта группа может зажигать!

    {% endif %}
  • {% конец для %}
  • Формы

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

    Подробнее

     из форм импорта django
    класс BandContactForm(forms. Form):
        предмет = формы.CharField(max_length=100)
        сообщение = формы.CharField()
        отправитель = формы.EmailField()
        cc_myself = forms.BooleanField (обязательно = False)
          
     
  • Аутентификация

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

    Подробнее

     от django.contrib.auth.decorators import login_required
    из django.shortcuts импортировать рендеринг
    @login_required
    защита my_protected_view (запрос):
        """Представление, доступ к которому могут получить только зарегистрированные пользователи"""
        вернуть рендеринг (запрос, 'protected.html', {'current_user': request.user})
          
     
  • Админ

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

    Подробнее

     от администратора импорта django.contrib
    from bands.models import Band, Member
    класс MemberAdmin (admin.ModelAdmin):
        """Настроить внешний вид автоматически сгенерированного администратора для модели Member"""
        list_display = ('имя', 'инструмент')
        list_filter = ('группа',)
    admin.site.register(Band) # Использовать параметры по умолчанию
    admin.site.register(Member, MemberAdmin) # Использовать настраиваемые параметры
          
     
  • Интернационализация

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

    Подробнее

     из рендеринга импорта django.shortcuts
    из django.utils.translation импортировать gettext
    домашняя страница def (запрос):
        """
        Отображает домашнюю страницу с приветственным сообщением, переведенным на
        язык пользователя.
        """
        message = gettext('Добро пожаловать на наш сайт!')
        вернуть рендеринг (запрос, 'homepage.html', {'сообщение': сообщение})
          
     
     {% загрузки i18n%}
    
      <голова>
        {% trans 'Домашняя страница – Зал славы' %}
      
      <тело>
        {# Переведено в представлении: #}
        

    {{ сообщение }}

    {% количество блоктрансов member_count=bands.count %} Вот единственная группа в зале славы: {% множественное число %} Вот все {{member_count }} групп в зале славы: {% endblocktrans %}

    <ул> {% для полосы в полосах %}
  • {{ band.name }} {% if band. can_rock %}

    {% trans 'Эта группа может зажигать!' %}

    {% endif %}
  • {% конец для %}
  • Безопасность

    Django обеспечивает множественную защиту от:

    • Clickjacking
    • Межсайтовый скриптинг
    • Подделка межсайтовых запросов (CSRF)
    • SQL-инъекция
    • Удаленное выполнение кода

    Подробнее

  • Наверх

    Скачать Django | Django

    Django доступен с открытым исходным кодом под
    лицензия БСД.
    Мы рекомендуем использовать последнюю версию Python 3. Последняя версия для
    поддержка Python 2.7 — это Django 1.11 LTS. Видеть
    FAQ для версий Python, поддерживаемых каждой версией Django.
    Вот как это получить:

    Вариант 1: Получить последнюю официальную версию

    Последняя официальная версия — 4. 2 (LTS). Читать
    4.2 примечания к выпуску, затем установите его с помощью
    pip:

     pip install Django==4.2 

    Вариант 2: Получить последнюю версию разработки

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

    git clone https://github.com/django/django.git

    Вы также можете скачать
    tar-архив разрабатываемой версии. Этот архив обновляется
    каждый раз, когда мы фиксируем код.

    После получения

    Дополнительные инструкции см. в руководстве по установке. Убедитесь, что вы прочитали документацию, соответствующую версии Django, которую вы только что установили.

    И не забудьте подписаться на список рассылки django-users, где другие пользователи Django и сами разработчики Django общаются, чтобы помочь друг другу.

    Поддерживаемые версии

    Выпуски функций (A.B, A.B+1 и т. д.) будут выпускаться примерно каждые восемь месяцев.
    Эти выпуски будут содержать новые функции, улучшения существующих функций и тому подобное.

    Выпуски исправлений (A.B.C и т. д.) будут выпускаться по мере необходимости, чтобы
    исправлять ошибки и/или проблемы с безопасностью. Эти выпуски будут на 100% совместимы с
    выпуск связанной функции, если только это невозможно из соображений безопасности
    причинам или для предотвращения потери данных. Таким образом, ответ на вопрос «Должен ли я перейти на
    последний выпуск патча?» всегда будет «да».

    Некоторые выпуски функций будут обозначены как долгосрочная поддержка
    (LTS) выпускает
    . Эти выпуски получат безопасность и потерю данных
    исправления применяются в течение гарантированного периода времени, обычно трех лет.

    См.
    политику поддерживаемых версий для получения подробных указаний о том, какие исправления будут перенесены.


    Серия выпуска Последняя версия Конец основной поддержки 1 Конец удлиненной опоры 2
    4,2 л 4,2 декабрь 2023 апрель 2026
    4.1 4.1.7 1 апреля 2023 г. декабрь 2023
    3,2 л 3.2.18 7 декабря 2021 г. апрель 2024

    Дорожная карта будущего

    Выпуск серии Дата выпуска Конец основной поддержки 1 Конец удлиненной опоры 2
    6,0 декабрь 2025 август 2026 апрель 2027
    5,2 л апрель 2025 декабрь 2025 апрель 2028
    5. 1 август 2024 г. апрель 2025 декабрь 2025
    5,0 декабрь 2023 август 2024 апрель 2025

    Неподдерживаемые предыдущие выпуски

    Эти серии выпусков больше не получают обновления безопасности или исправления ошибок.

    Серия выпуска Последняя версия Конец основной поддержки 1 Конец расширенной поддержки 2
    4,0 4.0.10 3 августа 2022 г. 1 апреля 2023 г.
    3.1 3.1.14 6 апреля 2021 г. 7 декабря 2021 г.
    3,0 3.0.14 3 августа 2020 г. 6 апреля 2021 г.
    2,2 л 2. 2.28 2 декабря 2019 г. 11 апреля 2022 г.
    2.1 2.1.15 1 апреля 2019 г. 2 декабря 2019 г.
    2,0 2.0.13 1 августа 2018 г. 1 апреля 2019 г.
    1,11 л 3 1.11.29 2 декабря 2017 г. 1 апреля 2020 г.
    1,10 1.10.8 4 апреля 2017 г. 2 декабря 2017 г.
    1,9 1.9.13 1 августа 2016 г. 4 апреля 2017 г.
    1,8 л 1.8.19 1 декабря 2015 г. 1 апреля 2018 г.
    1,7 1.7.11 1 апреля 2015 г. 1 декабря 2015 г.
    1,6 1.

    This entry was posted in Популярное