Веб приложение на django: Веб-приложение на Django с нуля

Django | Создание первого приложения

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

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

При создании проекта он уже содержит несколько приложений по умолчанию.

  • django.contrib.admin

  • django.contrib.auth

  • django.contrib.contenttypes

  • django.contrib.sessions

  • django.contrib.messages

  • django.contrib.staticfiles

Список всех приложений можно найти в проекте в файле settings. py в переменной INSTALLED_APPS:


INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

И, конечно, мы можем создавать свои приложения, которые реализуют определенный функционал. Для создания приложения в проекте применяется команда

python manage.py startapp название_проекта

Так, создадим в проекте, созданном в прошлой теме или новом,
первое приложение, которое будет называться hello. Для этого выполним в командной строке/терминале следующую команду:

python manage.py startapp hello

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

Рассмотрим вкратце его структуру:

  • папка migrations: предназначена для хранения миграций — скриптов, которые позволяют синхронизировать структуру базы данных с
    определением моделей

  • __init__. py: указывает интерпретатору python, что текущий каталог будет рассматриваться в качестве пакета

  • admin.py: предназначен для административных функций, в частности, здесь призводится регистрация моделей, которые используются в интерфейсе администратора

  • apps.py: определяет конфигурацию приложения

  • models.py: хранит определение моделей, которые описывают используемые в приложении данные

  • tests.py: хранит тесты приложения

  • views.py: определяет функции, которые получают запросы пользователей, обрабатывают их и возвращают ответ

Но пока приложение никак не задействуется. Его надо зарегистрировать в проекте Django. Для этого откроем файл settings.py и
добавим в конец массива INSTALLED_APPS наше приложение:


INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django. contrib.messages',
    'django.contrib.staticfiles',
    'hello'
]

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

Теперь определим какие-нибудь простейшие действия, которые будет выполнять данное приложение, например, отправлять в ответ пользователю строку
«Hello World».

Для этого перейдем в проекте приложения hello к файлу views.py, который по умолчанию должен выглядеть следующим
образом:


from django.shortcuts import render
# Create your views here.

Изменим код следующим образом:


from django.http import HttpResponse
 
def index(request):
    return HttpResponse("Hello METANIT.COM")

В данном случае мы импортируем класс HttpResponse из стандартного пакета django.http.
Затем определяется функция index(), которая в качестве параметра получает объект запроса request. Класс HttpResponse предназначен для
создания ответа, который отправляется пользователю. И с помощью выражения return HttpResponse("Hello METANIT.COM") мы отправляем пользователю
строку «Hello METANIT.COM»

Теперь также в основном проекте Django откроем файл urls.py, который позволяет сопоставить маршруты с представлениями, которые
будут обрабатывать запрос по этим маршрутам. По умолчанию этот файл выглядит следующим образом:


from django.contrib import admin
from django.urls import path

urlpatterns = [
    path('admin/', admin.site.urls),
]

Первой строкой из модуля django.contrib импортируется класс AdminSite, который предоставляет возможности работы с интерфейсом
администратора. Второй строкой из модуля django.urls импортируется функция path. Эта функция
задает сопоставление определенного маршрута с функцией обработки. Так, в данном случае маршрут «admin/» будет обрабатываться методом
admin.site.urls.

Но выше мы определили функцию index в файле views.py, который возвращает пользователю строку «Hello METANIT. COM». Поэтому изменим файл urls.py следующим
образом:


from django.urls import path
from hello import views

urlpatterns = [
    path('', views.index, name='home'),
]

Чтобы использовать функцию views.index вначале импортируем модуль views. Затем определяем сопоставление маршрута ‘ ‘ и функции views.index и
также дополнительно имя для маршрута: name='home'. По сути маршрут ‘ ‘ будет сопоставляться с запросом к корню приложения.

Теперь снова запустим приложение командой

python manage.py runserver

И вновь перейдем в браузере по адресу http://127.0.0.1:8000/, и браузер нам отобразит строку «Hello METANIT.COM»:

НазадСодержаниеВперед

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

  • Мотивация
  • Цели
  • Победители…
  • Давайте создадим веб-приложение!
    • Установите Python
    • Создайте виртуальную среду
    • Установите Django
    • Создайте проект Django
  • Настройте PyCharm для комфортной работы
    • Откройте созданный вами проект Django
  • Подготовьте сервер к работе
  • Мы готовы к запуску
  • Заключение

На днях мой брат спросил меня, могу ли я создать для него веб-сайт, с помощью которого можно было бы собирать данные, вводимые пользователями, выполнять некоторые вычисления и привлекать потенциальных клиентов. Я не работал над созданием сайтов со времен Geocities и MySpace. Ну, может быть, не так давно, но я довольно сильно отстал от темы, поскольку веб-программирование — не моя повседневная работа. Моим последним побочным проектом был сайт ресторана, созданный много лет назад, который я сделал с помощью PHP, поэтому я провел небольшое интернет-исследование, чтобы узнать, что популярно именно сейчас.

Простая в использовании IDE (интегрированная среда разработки). На моей нынешней работе (системным инженером) мне пришлось разрабатывать сценарии для автоматизации создания документов. Одна из проблем конкретного набора инструментов, который мы используем, заключается в том, что в нем нет редактора исходного кода. Нет подсветки синтаксиса или завершения кода. Это очень неудобно. Я понятия не имею, работает ли то, что я пишу, пока не запущу это и не увижу ошибки / предупреждения.

Отладка выполняется с помощью операторов печати. Так работать нельзя.

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

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

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

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

У меня был некоторый опыт работы с Java, но Spring оказался слишком тяжелым для этого проекта. Решения на основе Javascript, такие как стек MEAN, выглядели мощно, но я стараюсь не иметь с ними дел, если только это не (внешний интерфейс).

PyCharm. Выбрав Python, выбрать IDE было довольно просто. У PyCharm много фанатов, и я обнаружил, что к нему легко привыкнуть по сравнению с плагином PyDev в Eclipse или редактором IDLE, который поставляется вместе с Python.

Внимание: все это я проделал на своем MacBook. Шаги будут отличаться, если вы используете Windows. Мой стационарный компьютер сейчас пылится и используется только эпизодически (для игр).

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

$ python --version
Python 3.7.6

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

Сначала создайте папку для проекта.

$ mkdir mywebapp 
$ cd mywebapp

Затем создайте и активируйте виртуальную среду. Вы узнаете, что это работает, когда увидите «(myvenv)» в командной строке терминала.

$ python -m venv myvenv
$ source myvenv/bin/activate
(myvenv) ~$

Введите приведенную ниже строку, и веб-фреймворк Django будет установлен. Серьезно, это так просто.

(myvenv) ~ $ python -m pip install Django

Создадим наш первый проект Django.

(myvenv) ~$ python -m pip install Django 

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

mywebapp 
├── manage.py 
├── mysite 
│ ├── __init__.py 
| ├── asgi.py 
│ ├── settings.py 
│ ├── urls.py 
│ └── wsgi.py 
├── myvenv 
    └── ...

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

Перейдите на официальную страницу загрузки PyCharm и скачайте версию Community Edition. Это бесплатно, и мне нравится, что это бесплатно. Когда PyCharm будет установлен, откройте его, и вы увидите что-то вроде этого.

Нажмите кнопку «Открыть» и найдите каталог веб-приложения, который вы создали ранее.

Нажмите кнопку «Открыть», чтобы выбрать его в качестве рабочего каталога, после чего вы увидите структуру каталогов проекта.

Проект уже должен быть направлен в интерпретатор Python в виртуальной среде, но на тот случай, если это еще не сделано, перейдите в PyCharm → Preferences, и убедитесь в том, что у вас заданы настройки, указанные ниже.

Следующим шагом является настройка конфигурации запуска / отладки. Для этого перейдите в Run → Edit Configurations.

Нажмите «+», чтобы создать новую конфигурацию Python, и установите Script Path и Parameters, чтобы он запускал сервер.

Все настроено, теперь нажмите кнопку «Play», чтобы запустить приложение. В консоли вы увидите сообщение о том, что сервер разработки запущен.

Если вы перейдете по ссылке, то увидите, как взлетает ракета. Наслаждайтесь тем, чего вы достигли.

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

Вадим Дворниковавтор-переводчик статьи «Creating My First Web App with Django»

Введение в Django — Изучите веб-разработку

  • Обзор: Django
  • Следующий

В этой первой статье о Django мы отвечаем на вопрос «Что такое Django?» и дать вам обзор того, что делает этот веб-фреймворк особенным.

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

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

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

Django поможет вам написать программное обеспечение, которое:

Complete

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

Универсальный

Django может использоваться (и использовался) для создания веб-сайтов практически любого типа — от систем управления контентом и вики до социальных сетей и новостных сайтов. Он может работать с любой клиентской структурой и доставлять контент практически в любом формате (включая HTML, RSS-каналы, JSON и XML).

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

Безопасность

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

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

Django по умолчанию включает защиту от многих уязвимостей, включая SQL-инъекции, межсайтовые сценарии, подделку межсайтовых запросов и кликджекинг (дополнительную информацию о таких атаках см. в разделе Безопасность веб-сайтов).

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

Django использует основанную на компонентах архитектуру «без общего доступа» (каждая часть архитектуры независима от других и, следовательно, может быть заменена или изменена при необходимости). Четкое разделение между различными частями означает, что его можно масштабировать для увеличения трафика за счет добавления оборудования на любом уровне: кэширующих серверов, серверов баз данных или серверов приложений. Некоторые из самых загруженных сайтов успешно масштабировали Django для удовлетворения своих потребностей (например, Instagram и Disqus, и это только два примера).

Ремонтопригодный

Код Django написан с использованием принципов и шаблонов проектирования, которые поощряют создание поддерживаемого и многократно используемого кода. В частности, он использует принцип «Не повторяйся» (DRY), поэтому нет ненужного дублирования, что уменьшает объем кода. Django также продвигает группировку связанной функциональности в многоразовые «приложения» и, на более низком уровне, группирует связанный код в модули (в соответствии с шаблоном Model View Controller (MVC)).

Портативный

Django написан на Python, который работает на многих платформах. Это означает, что вы не привязаны к какой-либо конкретной серверной платформе и можете запускать свои приложения на многих разновидностях Linux, Windows и macOS. Кроме того, Django хорошо поддерживается многими поставщиками веб-хостинга, которые часто предоставляют специальную инфраструктуру и документацию для размещения сайтов Django.

Первоначально Django был разработан в период с 2003 по 2005 год веб-командой, которая отвечала за создание и поддержку веб-сайтов газет. После создания нескольких сайтов команда начала выделять и повторно использовать множество общих кодов и шаблонов проектирования. Этот общий код превратился в универсальную среду веб-разработки, исходный код которой был открыт как проект «Django» в июле 2005 г.

Django продолжает расти и совершенствоваться, начиная с первого промежуточного выпуска (1.0) в сентябре 2008 г. и заканчивая недавно выпущенной версией 4.0 (2022 г.). В каждом выпуске добавляются новые функции и исправляются ошибки, начиная от поддержки новых типов баз данных, механизмов шаблонов и кэширования и заканчивая добавлением «общих» функций просмотра и классов (которые сокращают объем кода, который разработчикам приходится писать для ряд задач по программированию).

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

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

Не существует какого-либо легкодоступного и точного измерения популярности серверных фреймворков (хотя вы можете оценить популярность, используя такие механизмы, как подсчет количества проектов GitHub и вопросы StackOverflow для каждой платформы). Лучше спросить, является ли Django «достаточно популярным», чтобы избежать проблем непопулярных платформ. Он продолжает развиваться? Можете ли вы получить помощь, если вам это нужно? Есть ли у вас возможность получить оплачиваемую работу, если вы изучите Django?

Судя по количеству известных сайтов, использующих Django, количеству людей, вносящих свой вклад в кодовую базу, а также количеству людей, оказывающих как бесплатную, так и платную поддержку, то да, Django — популярный фреймворк!

Известные сайты, использующие Django, включают: Disqus, Instagram, Knight Foundation, MacArthur Foundation, Mozilla, National Geographic, Open Knowledge Foundation, Pinterest и Open Stack (источник: страница обзора Django).

Веб-фреймворки часто называют себя «утверждающими» или «неутверждающими».

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

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

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

На традиционном веб-сайте, управляемом данными, веб-приложение ожидает HTTP-запросов от веб-браузера (или другого клиента). Когда запрос получен, приложение определяет, что необходимо, на основе URL-адреса и, возможно, информации в POST data или GET data. В зависимости от того, что требуется, он может затем читать или записывать информацию из базы данных или выполнять другие задачи, необходимые для удовлетворения запроса. Затем приложение возвращает ответ веб-браузеру, часто динамически создавая HTML-страницу для отображения в браузере, вставляя полученные данные в заполнители в шаблоне HTML.

Веб-приложения Django обычно группируют код, обрабатывающий каждый из этих шагов, в отдельные файлы:

  • URL-адреса: Хотя можно обрабатывать запросы с каждого отдельного URL-адреса с помощью одной функции, гораздо проще написать отдельную функцию представления для обработки каждого ресурса. Преобразователь URL-адресов используется для перенаправления HTTP-запросов в соответствующее представление на основе URL-адреса запроса. Преобразователь URL-адресов также может сопоставлять определенные шаблоны строк или цифр, которые появляются в URL-адресе, и передавать их в функцию просмотра в виде данных.
  • Представление: Представление — это функция обработчика запросов, которая получает HTTP-запросы и возвращает HTTP-ответы. Представления получают доступ к данным, необходимым для удовлетворения запросов, через модели , а форматирование ответа делегировать шаблонам .
  • Модели: Модели — это объекты Python, которые определяют структуру данных приложения и предоставляют механизмы для управления (добавление, изменение, удаление) и запросов к записям в базе данных.
  • Шаблоны: Шаблон — это текстовый файл, определяющий структуру или макет файла (например, страницы HTML), с заполнителями, используемыми для представления фактического содержимого. Представление может динамически создавать HTML-страницу с использованием HTML-шаблона, заполняя ее данными из модель . Шаблон можно использовать для определения структуры файла любого типа; это не обязательно должен быть HTML!

Примечание: Django называет эту организацию архитектурой «Шаблон представления модели (MVT)». Он имеет много общего с более знакомой архитектурой Model View Controller.

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

Отправка запроса на правильный вид (urls.py)

Преобразователь URL-адресов обычно хранится в файле с именем urls.py .
В приведенном ниже примере сопоставитель ( urlpatterns ) определяет список сопоставлений между маршрутами (конкретные шаблоны URL ) и соответствующими функциями просмотра. ([0-9]+)/$’, просмотры.лучший),
]

Объект urlpatterns представляет собой список функций path() и/или re_path() (списки Python определяются с помощью квадратных скобок, где элементы разделяются запятыми и могут иметь необязательную запятую в конце. Например : [элемент1, элемент2, элемент3,] ).

Первым аргументом обоих методов является маршрут (шаблон), который будет сопоставлен. Метод path() использует угловые скобки для определения частей URL-адреса, которые будут захвачены и переданы в функцию просмотра в качестве именованных аргументов. 9Функция 0105 re_path() использует гибкий подход к сопоставлению с образцом, известный как регулярное выражение. Мы поговорим об этом в следующей статье!

Второй аргумент — это еще одна функция, которая будет вызываться при совпадении шаблона. Обозначение views.book_detail указывает, что функция называется book_detail() и находится в модуле с именем views (т. е. внутри файла с именем views.py )

Обработка запроса (views.py )

Представления — это сердце веб-приложения, принимающие HTTP-запросы от веб-клиентов и возвращающие HTTP-ответы. В промежутках они маршалируют другие ресурсы фреймворка для доступа к базам данных, шаблонам рендеринга и т. д.

В приведенном ниже примере показана функция минимального представления index() , которая могла быть вызвана нашим преобразователем URL-адресов в предыдущем разделе. Как и все функции представления, он получает объект HttpRequest в качестве параметра (запрос ) и возвращает Объект HttpResponse . В этом случае мы ничего не делаем с запросом, и наш ответ возвращает жестко закодированную строку. В следующем разделе мы покажем вам запрос, который делает что-то более интересное.

 # имя файла: views.py (функции представления Django)
из django.http импорт HttpResponse
Индекс защиты (запрос):
    # Получить HttpRequest — параметр запроса
    # выполнять операции, используя информацию из запроса. 
    # Возвращаем HTTP-ответ
    return HttpResponse('Привет от Джанго!')
 

Примечание: Немного Python:

  • Модули Python — это «библиотеки» функций, хранящиеся в отдельных файлах, которые мы можем захотеть использовать в нашем коде. Здесь мы импортируем только объект HttpResponse из модуля django.http , чтобы мы могли использовать его в нашем представлении: from django.http import HttpResponse . Существуют и другие способы импорта некоторых или всех объектов из модуля.
  • Функции объявляются с использованием def 9ключевое слово 0106, как показано выше, с именованными параметрами, указанными в скобках после имени функции; вся строка заканчивается двоеточием. Обратите внимание, что все следующие строки имеют отступ с отступом . Отступ важен, так как он указывает, что строки кода находятся внутри этого конкретного блока (обязательный отступ — ключевая особенность Python и одна из причин, по которой код Python так легко читается).

Представления обычно хранятся в файле с именем views.py .

Определение моделей данных (models.py)

Веб-приложения Django управляют данными и запрашивают их через объекты Python, называемые моделями. Модели определяют структуру хранимых данных, включая поля типов и, возможно, также их максимальный размер, значения по умолчанию, параметры списка выбора, текст справки для документации, текст метки для форм и т. д. Определение модели не зависит от лежащего в основе база данных — вы можете выбрать одну из нескольких в настройках вашего проекта. После того, как вы выбрали, какую базу данных вы хотите использовать, вам вообще не нужно обращаться к ней напрямую — вы просто пишете свою структуру модели и другой код, а Django выполняет всю «грязную работу» по общению с базой данных для ты.

В приведенном ниже фрагменте кода показана очень простая модель Django для объекта Team . Класс Team является производным от моделей Django класса . Модель . Он определяет имя команды и уровень команды как поля символов и указывает максимальное количество символов, которое должно храниться для каждой записи. team_level может быть одним из нескольких значений, поэтому мы определяем его как поле выбора и предоставляем сопоставление между отображаемыми вариантами и данными, которые должны быть сохранены, вместе со значением по умолчанию.

 # имя файла: models.py
из моделей импорта django.db
Команда класса (модели.Модель):
    team_name = models.CharField (max_length = 40)
    КОМАНДА_УРОВНИ = (
        («U09», «Младше 09»),
        («До 10 лет», «До 10 лет»),
        ("U11", "до 11 лет"),
        # …
        # список других уровней команды
    )
    team_level = models.CharField (max_length = 3, варианты = TEAM_LEVELS, по умолчанию = 'U11')
 

Примечание: Немного Python:

Python поддерживает «объектно-ориентированное программирование» — стиль программирования, при котором мы организуем наш код в объекты, которые включают связанные данные и функции для работы с этими данными. Объекты также могут наследовать/расширяться/производиться от других объектов, что позволяет совместно использовать общее поведение между связанными объектами. В Python мы используем ключевое слово класс , чтобы определить «чертеж» для объекта. Мы можем создать несколько конкретных экземпляров типа объекта на основе модели в классе.

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

Запрос данных (views.py)

Модель Django предоставляет простой API запросов для поиска в связанной базе данных. Это может сопоставляться с несколькими полями одновременно с использованием различных критериев (например, точное, без учета регистра, больше чем и т. д.) и может поддерживать сложные операторы (например, вы можете указать поиск по командам U11, у которых есть команда имя, начинающееся с "Fr" или заканчивающееся на "al").

Фрагмент кода показывает функцию просмотра (обработчик ресурсов) для отображения всех наших U09команды. Строка list_teams = Team.objects.filter(team_level__exact="U09") показывает, как мы можем использовать API запроса модели для фильтрации всех записей, где поле team_level имеет точно текст " U09 " (обратите внимание, как этот критерий передается функции filter() в качестве аргумента, при этом имя поля и тип соответствия разделяются двойным подчеркиванием: team_level__exact ).

 ## имя файла: views.py
из django.shortcuts импортировать рендеринг
из команды импорта .models
Индекс защиты (запрос):
    list_teams = Team.objects.filter(team_level__exact="U09")
    контекст = {'самые молодые_команды': list_teams}
    вернуть рендеринг (запрос, '/best/index. html', контекст)
 

Эта функция использует функцию render() для создания HttpResponse , который отправляется обратно в браузер. Эта функция является ярлыком ; он создает файл HTML, комбинируя указанный шаблон HTML и некоторые данные для вставки в шаблон (предоставленные в переменной с именем « context »). В следующем разделе мы покажем, как в шаблон вставляются данные для создания HTML.

Данные рендеринга (шаблоны HTML)

Системы шаблонов позволяют указать структуру выходного документа, используя заполнители для данных, которые будут заполняться при создании страницы. Шаблоны часто используются для создания HTML, но также могут создавать документы других типов. Django поддерживает как собственную систему шаблонов, так и другую популярную библиотеку Python под названием Jinja2 из коробки (при необходимости ее также можно настроить для поддержки других систем).

Фрагмент кода показывает, что HTML-шаблон вызвал 9Функция 0105 render() из предыдущего раздела может выглядеть так. Этот шаблон был написан в предположении, что он будет иметь доступ к переменной списка с именем youngest_teams при рендеринге (она содержится в переменной контекста внутри функции render() выше). Внутри скелета HTML у нас есть выражение, которое сначала проверяет, существует ли переменная youngest_teams , а затем повторяет ее в цикле for . На каждой итерации шаблон отображает 9 команд каждой команды.0105 значение team_name в элементе

  • .

     ## имя файла: best/templates/best/index.html
    
    
    <голова>
      <мета-кодировка="utf-8">
      Главная страница
    
    <тело>
      {% если самые молодые_команды %}
        <ул>
          {% для команды в youngest_teams %}
            
  • {{ team.team_name }}
  • {% конец для %} {% еще %}

    Нет доступных команд.

    {% конец%}

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

    • Формы : HTML-формы используются для сбора пользовательских данных для обработки на сервере. Django упрощает создание, проверку и обработку форм.
    • Аутентификация и разрешения пользователей : Django включает в себя надежную систему аутентификации и разрешений пользователей, созданную с учетом требований безопасности.
    • Кэширование : Динамическое создание контента требует гораздо больше вычислительных ресурсов (и медленнее), чем обслуживание статического контента. Django обеспечивает гибкое кэширование, так что вы можете сохранить всю или часть отображаемой страницы, чтобы она не отображалась повторно, за исключением случаев, когда это необходимо.
    • Сайт администрирования : сайт администрирования Django включается по умолчанию при создании приложения с использованием базового скелета. Это упрощает предоставление административной страницы для администраторов сайта для создания, редактирования и просмотра любых моделей данных на вашем сайте.
    • Сериализация данных : Django упрощает сериализацию и обслуживание ваших данных в виде XML или JSON. Это может быть полезно при создании веб-службы (веб-сайт, который просто предоставляет данные для использования другими приложениями или сайтами и сам ничего не отображает) или при создании веб-сайта, в котором код на стороне клиента обрабатывает всю визуализацию. данных.

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

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

    • Обзор: Джанго
    • Следующий
    • Знакомство с Джанго
    • Настройка среды разработки Django
    • Учебник по Django: веб-сайт местной библиотеки
    • Учебное пособие по Django, часть 2: создание веб-сайта-скелета
    • Django Tutorial Часть 3: Использование моделей
    • Учебное пособие по Django, часть 4: административный сайт Django
    • Учебное пособие по Django, часть 5: Создание домашней страницы
    • Учебное пособие по Django, часть 6: общий список и подробные представления
    • Учебное пособие по Django, часть 7: структура сеансов
    • Учебное пособие по Django, часть 8: аутентификация пользователей и разрешения
    • Учебное пособие по Django, часть 9: Работа с формами
    • Учебное пособие по Django, часть 10. Тестирование веб-приложения Django
    • Учебное пособие по Django, часть 11. Развертывание Django в рабочей среде
    • Безопасность веб-приложений Django
    • Мини-блог Джанго своими руками

    Последнее изменение: , участниками MDN

    Скачать Django | Django

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

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

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

     pip install Django==4.1.3 

    Вариант 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. 1 4.1.3 Апрель 2023 Декабрь 2023
    4,0 4.0.8 3 августа 2022 г. Апрель 2023
    3,2 л 3.2.16 7 декабря 2021 г. Апрель 2024

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

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

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

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

    Серия выпуска Последняя версия Конец основной поддержки 1 Конец расширенной поддержки 2
    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.6.11 2 сентября 2014 г. 1 апреля 2015 г.
    1,5 1.5.12 6 ноября 2013 г. 2 сентября 2014 г.
    1,4 л 1.4.22 26 февраля 2013 г. 1 октября 2015 г.
    1,3 1.3.7 23 марта 2012 г. 26 февраля 2013 г.

    [1] Исправления безопасности, ошибки потери данных, ошибки сбоя, основные функции
    ошибки в новых функциях и регрессии старых версий Django.

    This entry was posted in Продвижение