Начало работы с Django
В зависимости от того, насколько вы новичок в Django, вы можете попробовать руководство или просто углубиться в документацию.
Хотите узнать больше о Django? Прочтите обзор, чтобы узнать, подходит ли Django для вашего проекта.
Обзор DjangoУстановить Django
Прежде чем вы сможете использовать Django, вам необходимо его установить. Наше полное руководство по установке охватывает все возможности; это руководство поможет вам выполнить простую и минимальную установку, которая будет работать, пока вы будете проходить введение.
Руководство по установке DjangoНапишите свое первое приложение Django
Django уже установили? Хороший. Теперь попробуйте это руководство, которое поможет вам создать базовое приложение для опроса. Он состоит из двух частей:
- Публичный сайт, который позволяет людям просматривать опросы и голосовать в них.
- Административный интерфейс, который позволяет добавлять, изменять и удалять опросы.
Оттачивайте свои навыки
Официальная документация Django содержит все, что вам нужно знать о Django (и не только).
Прочтите документациюПрисоединяйтесь к сообществу
Вы можете помочь сделать нас лучше. Узнайте о предстоящих мероприятиях Django, узнайте, что думают другие разработчики Django, найдите и опубликуйте вакансии и многое другое.
Присоединяйтесь к намВведение в Django
-
Объектно-реляционный преобразователь
Определите свои модели данных полностью на Python. Вы бесплатно получаете богатый динамический API-интерфейс доступа к базе данных, но при необходимости вы все равно можете писать SQL.
Читать далееfrom django.db import models class Band(models.Model): """A model of a rock band.""" name = models.CharField(max_length=200) can_rock = models.BooleanField(default=True) class Member(models.Model): """A model of a rock band member.""" name = models.CharField("Member's name", max_length=200) instrument = models.CharField( choices=( ("g", "Guitar"), ("b", "Bass"), ("d", "Drums"), ), max_length=1, ) band = models.ForeignKey("Band")
-
URL-адреса и просмотры
A clean, elegant URL scheme is an important detail in a high-quality web application. Django encourages beautiful URL design and doesn’t put any cruft in URLs, like .php or .asp.
To design URLs for an application, you create a Python module called a URLconf. Like a table of contents for your app, it contains a simple mapping between URL patterns and your views.
Read morefrom django.urls import path from . import views urlpatterns = [ path("bands/", views.band_listing, name="band-list"), path("bands/<int:band_id>/", views.band_detail, name="band-detail"), path("bands/search/", views.band_search, name="band-search"), ]
from bands.models import Band from django.shortcuts import render def band_listing(request): """A view of all bands.""" bands = Band.objects.all() return render(request, "bands/band_listing.html", {"bands": bands})
-
Шаблоны
Язык шаблонов Django создан для обеспечения баланса между мощью и простотой. Он создан таким образом, чтобы его было удобно и легко освоить тем, кто привык работать с HTML, например дизайнерам и разработчикам интерфейса. Но он также является гибким и легко расширяемым, что позволяет разработчикам дополнять язык шаблонов по мере необходимости.
Read more<html> <head> <title>{% translate "Band Listing" %}</title> </head> <body> <h1>{% translate "All Bands" %}</h1> <ul> {% for band in bands %} <li> <h2><a href="{{ band.get_absolute_url }}">{{ band.name }}</a></h2> {% if band.can_rock %}<p>{% translate "This band can rock!" %}</p>{% endif %} </li> {% endfor %} </ul> </body> </html>
-
Формы
Django предоставляет мощную библиотеку форм, которая обрабатывает рендеринг форм в формате HTML, проверяет данные, отправленные пользователем, и преобразует эти данные в собственные типы Python. Django также предоставляет возможность создавать формы на основе существующих моделей и использовать эти формы для создания и обновления данных.
Read morefrom django import forms class BandContactForm(forms.Form): subject = forms.CharField(max_length=100) message = forms.TextField() sender = forms.EmailField() cc_myself = forms.BooleanField(required=False)
-
Аутентификация
Django поставляется с полнофункциональной и безопасной системой аутентификации. Он обрабатывает учетные записи пользователей, группы, разрешения и пользовательские сеансы на основе файлов cookie. Это позволяет легко создавать сайты, которые позволяют пользователям создавать учетные записи и безопасно входить в систему и выходить из нее.
Читать далееfrom django.contrib.auth.decorators import login_required from django.shortcuts import render @login_required def my_protected_view(request): """A view that can only be accessed by logged-in users""" return render(request, "protected.html", {"current_user": request.user})
-
Админ
Одной из самых мощных частей Django является автоматический интерфейс администратора. Он считывает метаданные в ваших моделях, чтобы предоставить мощный и готовый к использованию интерфейс, который производители контента могут немедленно использовать, чтобы начать управлять контентом на вашем сайте. Его легко настроить, и он предоставляет множество возможностей для настройки.
Читать далееfrom bands.models import Band, Member from django.contrib import admin class MemberAdmin(admin.ModelAdmin): """Customize the look of the auto-generated admin for the Member model""" list_display = ("name", "instrument") list_filter = ("band",) admin.site.register(Band) # Use the default options admin.site.register(Member, MemberAdmin) # Use the customized options
-
Интернационализация
Django предлагает полную поддержку перевода текста на разные языки, а также форматирование дат, времени, чисел и часовых поясов в зависимости от локали. Он позволяет разработчикам и авторам шаблонов указывать, какие части их приложений должны быть переведены или отформатированы для местных языков и культур, и использует эти перехватчики для локализации веб-приложений для конкретных пользователей в соответствии с их предпочтениями.
Читать далееfrom django.shortcuts import render from django.utils.translation import gettext def homepage(request): """ Shows the homepage with a welcome message that is translated in the user's language. """ message = gettext("Welcome to our site!") return render(request, "homepage.html", {"message": message})
{% load i18n %} <html> <head> <title>{% translate "Homepage - Hall of Fame" %}</title> </head> <body> {# Translated in the view: #} <h1>{{ message }}</h1> <p> {% blocktranslate count member_count=bands.count %} Here is the only band in the hall of fame: {% plural %} Here are all the {{ member_count }} bands in the hall of fame: {% endblocktranslate %} </p> <ul> {% for band in bands %} <li> <h2><a href="{{ band.get_absolute_url }}">{{ band.name }}</a></h2> {% if band.can_rock %}<p>{% translate 'This band can rock!' %}</p>{% endif %} </li> {% endfor %} </ul> </body> </html>
-
Безопасность
Django обеспечивает множество средств защиты от:
- Кликджекинг
- Межсайтовый скриптинг
- Подделка межсайтовых запросов (CSRF)
- SQL-инъекция
- Удаленное выполнение кода