Как работает django: Как работает Django — Язык программирования Python / IT-Академия Алексея Сухорукова (курс апрель-июнь 2020)

Твой первый проект на Django! · HonKit

Часть этой главы основана на учебных пособиях Geek Girls Carrots (https://github.com/ggcarrots/django-carrots).

Отдельные части этой главы основаны на учебном пособии django-marcador , лицензированном под Creative Commons Attribution-ShareAlike 4.0 International License. Руководство django-marcador защищено авторским правом Markus Zapke-Gründemann et al.

Мы собираемся создать простой блог!

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

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

Не забудь: ты должна запускать все команды в virtualenv. Если ты не видишь в командной строке префикса (myvenv), то необходимо активировать virtualenv. Мы объясняли, как это сделать, в разделе Работаем с virtualenv главы Установка Django. Для этого нужно набрать myvenv\Scripts\activate в Windows или source myvenv/bin/activate в Mac OS / Linux.

OS X или Linux

В консоли Mac OS или Linux нужно запустить следующую команду (не забудь добавить точку . в конце):

command-line

(myvenv) ~/djangogirls$ django-admin startproject mysite .

Точка . крайне важна, потому что говорит скрипту установить Django в вашем текущем каталоге (который и обозначается сокращённо точкой .)

Примечание: при вводе приведённой команды помни, что тебе нужно набирать только часть, начинающуюся с django-admin. (myvenv) ~/djangogirls$ — это просто пример строки-приглашения терминала.

Windows

В Windows запусти следующую команду (не забудь добавить точку . в конце):

command-line

(myvenv) C:\Users\Name\djangogirls> django-admin.exe startproject mysite .

Точка . крайне важна, потому что говорит скрипту установить Django в вашем текущем каталоге (который и обозначается сокращённо точкой .)

Примечание: при вводе приведённой команды помни, что тебе нужно набирать только часть, начинающуюся с django-admin.exe. (myvenv) C:\Users\Name\djangogirls> — это просто пример приглашения командной строки.

django-admin.py — это скрипт, который создаст необходимую структуру директорий и файлы для нас. Теперь у твоего проекта должна быть следующая структура:

djangogirls
├───manage.py
├───mysite
│        settings.py
│        urls.py
│        wsgi.py
│        __init__.py
└───requirements. txt

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

manage.py — это другой скрипт, который помогает с управлением сайтом. С помощью него мы, помимо прочего, сможем запустить веб-сервер на твоем компьютере без установки дополнительных программ.

Файл settings.py содержит настройки для твоего веб-сайта.

Помнишь нашу аналогию с почтальоном? Файл urls.py содержит список шаблонов, по которым ориентируется urlresolver.

Давай пока забудем про остальные файлы — мы не будем их изменять. Только не удали их случайно!

Изменяем настройки

Давай внесём изменения в mysite/settings.py. Открой файл в текстовом редакторе, который ты выбрала ранее.

Примечание: помни, что settings.py — самый обычный файл. Ты можешь открыть его из своего редактора кода, используя меню «Файл -> Открыть». При этом ты увидишь обычное окно, в котором ты можешь перейти к своему файлу settings.py и выбрать его. Либо ты можешь открыть этот файл, перейдя в директорию проекта djangogirls на твоём рабочем столе и щёлкнув по нему правой кнопкой мыши; затем выбери свой редактор кода из предложенного списка. Важно выбрать именно редактор, поскольку у тебя могут быть установлены программы, которые откроют наш файл, но не позволят его изменить.

Было бы неплохо установить корректный часовой пояс на нашем сайте. Перейди к списку часовых поясов википедии и скопируй название своего часового пояса (TZ) (например, Europe/Moscow).

В файле settings.py найди строку, содержащую TIME_ZONE, и измени её в соответствии со своим часовым поясом:

mysite/settings.py

TIME_ZONE = 'Europe/Moscow'

Код языка состоит из сокращённого названия языка, например en для английского или ru для русского, и кода страны, например, ru для России или ch для Швейцарии. Тебе понадобится эта настройка, если ты хочешь, чтобы все встроенные кнопки и уведомления от Django были на твоём языке. Таким образом, надпись на кнопке «Cancel» будет переведена на заданный тобой язык. Django поставляется с большим набором готовых переводов.

Измени язык, отредактировав следующую строку:

mysite/settings.py

LANGUAGE_CODE = 'ru-ru'

Нам также необходимо добавить в настройки информацию о расположении статических файлов (мы познакомимся со статическими файлами и CSS в следующих главах). Спустись в конец файла и после переменной STATIC_URL добавь новую — STATIC_ROOT:

mysite/settings.py

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')

Когда наcтройка DEBUG имеет значение True, а настройка ALLOWED_HOSTS пуста, имя хост твоего веб-сайта сверяется со списком ['localhost', '127.0.0.1', '[::1]'].
Ни одно из значений не будет соответствовать имени хоста на PythonAnywhere при публикации нашего приложения, поэтому нам необходимо изменить следующую настройку:

mysite/settings. py

ALLOWED_HOSTS = ['127.0.0.1', '.pythonanywhere.com']

Примечание: В случае если вы используете Chromebook, добавьте следующую строку в конец файла settings.py:
MESSAGE_STORAGE = 'django.contrib.messages.storage.session.SessionStorage'

Настройка базы данных

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

Она уже выбрана по умолчанию в файле mysite/settings.py:

mysite/settings.py

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

Чтобы создать базу данных для нашего блога, набери в командной строке следующее: python manage.py migrate (мы должны быть в директории djangogirls, где расположен файл manage.py). Если всё прошло успешно, то ты увидишь следующий результат:

command-line

(myvenv) ~/djangogirls$ python manage. py migrate
Operations to perform:
  Apply all migrations: auth, admin, contenttypes, sessions
Running migrations:
  Rendering model states... DONE
  Applying contenttypes.0001_initial... OK
  Applying auth.0001_initial... OK
  Applying admin.0001_initial... OK
  Applying admin.0002_logentry_remove_auto_add... OK
  Applying contenttypes.0002_remove_content_type_name... OK
  Applying auth.0002_alter_permission_name_max_length... OK
  Applying auth.0003_alter_user_email_max_length... OK
  Applying auth.0004_alter_user_username_opts... OK
  Applying auth.0005_alter_user_last_login_null... OK
  Applying auth.0006_require_contenttypes_0002... OK
  Applying auth.0007_alter_validators_add_error_messages... OK
  Applying sessions.0001_initial... OK

Вот и всё! Пришло время запустить веб-сервер и посмотреть, работает ли наш веб-сайт!

Запуск веб-сервера

Ты должна быть в директории, где расположен файл manage.py (в нашем случае — djangogirls). Запустим веб-сервер из командной строки: python manage. py runserver:

command-line

(myvenv) ~/djangogirls$ python manage.py runserver

Если ты работаешь в Windows, и команда падает с ошибкой UnicodeDecodeError, используй вместо неё другую:

command-line

(myvenv) ~/djangogirls$ python manage.py runserver 0:8000

Теперь тебе нужно проверить, работает ли веб-сайт — открой браузер (Firefox, Chrome, Safari, Internet Explorer или любой другой) и набери следующий адрес:

browser

http://127.0.0.1:8000/

Если ты используешь Chromebook или Cloud9, вместо этого нажми на ссылку во всплывающем окне, которая должна появиться в правом верхнем углу командного окна, в котором запущен веб сервер. Ссылка может выглядеть так:

browser

https://<странные буквы и цифры>.vfs.cloud9.us-west-2.amazonaws.com

Поздравляем! Ты только что создала свой первый веб-сайт и запустила его на веб-сервере! Ну не круто ли?

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

Мы рассматривали, как работают веб-сервера, в главе Как работает интернет.

Веб-сервер займёт командную строку, пока ты его не остановишь. Чтобы и дальше иметь возможность набирать команды, открой ещё одно окно терминала и активируй в нём виртуальное окружение. Чтобы остановить веб-сервер, перейди обратно в окно, в котором он работает, и нажми CTRL + C — кнопки Control и C вместе (в Windows может потребоваться нажать клавиши Ctrl + Break).

Готова к следующему шагу? Пришло время создать содержимое для нашего блога!

Установка Django · HonKit

Примечание: если ты используешь Chromebook, пропусти эту главу, но выполни инструкции по настройке для Chromebook

Примечание: если ты уже выполнила установку — можешь пропустить эту часть и сразу перейти к следующей главе!

Отдельные части этой главы основаны на учебных пособиях Geek Girls Carrots (https://github. com/ggcarrots/django-carrots).

Отдельные части этой главы основаны на учебном пособии django-marcador, лицензированном под Creative Commons Attribution-ShareAlike 4.0 International License. Руководство django-marcador защищено авторским правом Markus Zapke-Gründemann et al.

Виртуальное окружение

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

Итак, давай создадим виртуальное окружение (оно также называется virtualenv). Virtualenv будет изолировать настройки Python/Django для каждого отдельного проекта. Это значит, что изменения одного сайта не затронут другие сайты, которые ты разрабатываешь. Удобно, правда?

Всё, что тебе нужно сделать — найти директорию, в которой мы создадим virtualenv; домашний каталог вполне подойдёт. Для Windows адрес будет выглядеть так: C:\Users\Name (где Name — твоё имя пользователя).

Примечание: Если ты работаешь в Windows, удостоверься, что в названии директории нет специальных символов или символов с диакритическими знаками; если в твоём имени пользователя есть такие символы, выбери другую директорию, например, C:\djangogirls.

Мы будем использовать отдельную директорию djangogirls в домашнем каталоге:

command-line

$ mkdir djangogirls
$ cd djangogirls

Мы создадим виртуальное окружение под именем myvenv. В общем случае команда будет выглядеть так:

command-line

$ python3 -m venv myvenv

Виртуальное окружение: Windows

Чтобы создать новое virtualenv, тебе нужно открыть командную строку и набрать python -m venv myvenv. Это будет выглядеть так:

command-line

C:\Users\Name\djangogirls> python -m venv myvenv

Здесь myvenv — имя твоего virtualenv. Ты можешь выбрать другое имя, но используй только строчные буквы, без пробелов и специальных символов. Имя виртуального окружения выбирай покороче — тебе придётся часто его набирать!

Виртуальное окружение: Linux и OS X

В Linux и OS X достаточно набрать python3 -m venv myvenv, чтобы создать virtualenv:

command-line

$ python3 -m venv myvenv

myvenv — имя виртуального окружения virtualenv. Можешь выбрать другое имя, но используй только строчные буквы и никаких пробелов. Имя виртуального окружения лучше выбирать покороче — набирать его предстоит не раз!

Примечание: В некоторых версиях Debian/Ubuntu может произойти следующая ошибка:

command-line

The virtual environment was not created successfully because ensurepip is not available.  On Debian/Ubuntu systems, you need to install the python3-venv package using the following command.
   apt install python3-venv
You may need to use sudo with that command.   After installing the python3-venv package, recreate your virtual environment.

В таком случае следуй приведённым инструкциям и установи пакет python3-venv:

command-line

$ sudo apt install python3-venv

Примечание: В некоторых версиях Debian/Ubuntu при таком способе создания виртуального окружения ты можешь получить такую ошибку:

command-line

Error: Command '['/home/eddie/Slask/tmp/venv/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 1

Чтобы обойти её, используй команду virtualenv.

command-line

$ sudo apt install python-virtualenv
$ virtualenv --python=python3.6 myvenv

Примечание: Если ты получаешь следующую ошибку

command-line

E: Unable to locate package python3-venv

то запусти команду:

command-line

sudo apt install python3.6-venv

Работаем с virtualenv

Указанная выше команда создаст директорию myvenv (или другую, в зависимости от выбранного тобой имени), которая будет содержать виртуальное окружение (по сути — набор файлов и папок).

Работаем с virtualenv: Windows

Запусти виртуальное окружение, выполнив:

command-line

C:\Users\Name\djangogirls> myvenv\Scripts\activate

ПРИМЕЧАНИЕ: в Windows 10 при работе в Windows PowerShell ты можешь получить ошибку вида execution of scripts is disabled on this system. В этом случае открой ещё одно окно Windows PowerShell, выбрав опцию «Запустить от имени Администратора». Затем перед использованием виртуального окружения попробуй запустить следующую команду:

command-line

C:\WINDOWS\system32> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
    Execution Policy Change
    The execution policy helps protect you from scripts that you do not trust. Changing the execution policy might expose you to the security risks described in the about_Execution_Policies help topic at http://go.microsoft.com/fwlink/?LinkID=135170. Do you want to change the execution policy? [Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "N"): A

Работаем с virtualenv: Linux и OS X

Запусти виртуальное окружение, выполнив:

command-line

$ source myvenv/bin/activate

Не забудь поменять myvenv на выбранное тобой имя для virtualenv!

ПРИМЕЧАНИЕ: иногда команда source может быть недоступна. В таком случае используй следующий метод:

command-line

$ . myvenv/bin/activate

Ты поймёшь, что virtualenv запущено, когда увидишь префикс (myvenv) в начале приглашения командной строки.

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

Отлично, теперь мы будем хранить все важные зависимости в одном месте. Наконец можно установить Django!

Установка Django

После запуска virtualenv ты можешь установить Django.

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

command-line

(myvenv) ~$ python3 -m pip install --upgrade pip

Установка библиотек через указание требований

Файл с требованиями (requirements) хранит список зависимостей, которые нужно установить с помощью
pip install:

Для начала создай файл requirements. txt внутри директории djangogirls/, используя текстовый редактор, который ты установила ранее. Просто создай в редакторе новый файл, а затем сохрани его под именем requirements.txt в директории djangogirls/. После этого твоя директория будет выглядеть так:

djangogirls
└───requirements.txt

В файл djangogirls/requirements.txt нужно добавить такой текст:

djangogirls/requirements.txt

Django~=3.2.10

Теперь выполни команду pip install -r requirements.txt, чтобы установить Django.

command-line

(myvenv) ~$ pip install -r requirements.txt
Collecting Django~=3.2.10 (from -r requirements.txt (line 1))
  Downloading Django-3.2.10-py3-none-any.whl (7.1MB)
Installing collected packages: Django
Successfully installed Django-3.2.10

Установка Django: Windows

Если при запуске pip в Windows ты получаешь сообщение об ошибке, проверь, что путь к директории с проектом не содержит пробелов или специальных символов (C:\Users\User Name\djangogirls). Если проблема в этом, то, пожалуйста, перенеси свой проект в другое место, адрес которого не будет содержать пробелов и специальных символов (предлагаем C:\djangogirls). Создай новое виртуальное окружение в новой директории, после этого удали старое и попробуй запустить команды выше заново (перемещение виртуального окружения не сработает, поскольку в нём используются абсолютные пути).

Установка Django: Windows 8 и Windows 10

При попытке установки Django твоя командная строка может зависнуть. Если это произошло, вместо приведённой выше команды используй:

command-line

C:\Users\Name\djangogirls> python -m pip install -r requirements.txt

Установка Django: Linux

При возникновении ошибки при вызове pip под Ubuntu 12.04, пожалуйста, запусти `python -m pip install -U —force-reinstall pip`, чтобы исправить установку pip в virtualenv.

Вот и всё! Теперь ты (наконец-то) готова создать своё Django-приложение!

Введение в Django

❮ Предыдущая
Далее ❯


Что такое Джанго?

Django — это среда Python, упрощающая создание веб-сайтов с использованием Python.

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

Django делает упор на возможность повторного использования компонентов, также называемую DRY (Don’t
Repeat Yourself) и поставляется с готовыми к использованию функциями, такими как система входа в систему,
подключение к базе данных и операции CRUD (создать, прочитать, обновить, удалить).

Django особенно полезен для веб-сайтов, управляемых базами данных.

В следующей главе вы узнаете, как установить Django.


Как работает Джанго?

Django следует шаблону проектирования MVT (шаблон представления модели).

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

Модель

Модель предоставляет данные из базы данных.

В Django данные доставляются в виде объектно-реляционного сопоставления (ORM),
это метод, разработанный для облегчения работы с базами данных.

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

Django с ORM упрощает взаимодействие с базой данных без необходимости писать
сложные операторы SQL.

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


Представление

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

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


Шаблон

Шаблон — это файл, в котором вы описываете, как должен быть представлен результат.

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

Django использует стандартный HTML для описания макета, но использует теги Django для добавления логики:

 

Моя домашняя страница

Меня зовут {{ firstname }}.

Шаблоны приложения находятся в папке с именем templates .


URL-адреса

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

Когда пользователь запрашивает URL-адрес, Django решает, на какое представление он отправит его.

Это делается в файле с именем urls.py .


Итак, что происходит?

Когда вы установили Django и создали свое первое веб-приложение Django,
и браузер запрашивает URL-адрес, в основном это происходит:

  1. Django получает URL-адрес, проверяет urls. py и вызывает представление, соответствующее URL-адресу.
  2. Представление, расположенное в views.py , проверяет релевантные модели.
  3. Модели импортируются из файла models.py .
  4. Затем представление отправляет данные в указанный шаблон в папке шаблона .
  5. Шаблон содержит теги HTML и Django, а также данные, которые он возвращает
    готовый HTML-контент обратно в браузер.

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


Django History

Django был изобретен Lawrence Journal-World в 2003 году, чтобы соответствовать краткому
сроки в газете и в то же время выполнение требований
опытные веб-разработчики.

Первоначальный публичный выпуск состоялся в июле 2005 г.

Последняя версия Django — 4.0.3 (март 2022 г.).


❮ Предыдущий
Следующая ❯

Что такое Django | IBM

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

Что такое Джанго?

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

WordPress или Drupal

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

Знакомство с веб-фреймворком Django

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

При всем выборе веб-фреймворков Python, зачем выбирать веб-фреймворк Django? Это может быть не самый простой в использовании и, конечно, не самый новый. Тем не менее, веб-фреймворк Django может подойти, если вы создаете веб-приложение, которое включает в себя межсайтовые сценарии и, как ожидается, будет обрабатывать большое количество пользователей или сложный набор функций, таких как подключение к API или аутентификация пользователей. Судя по количеству проектов на GitHub, он также очень популярен.

Любой, кто хорошо владеет языком программирования Python и его синтаксисом, должен иметь возможность начать проект с использованием веб-инфраструктуры Django для создания веб-приложения. (Примечание: хотя большая часть ядра Django — это Python, приложения admin и gis contrib содержат код JavaScript.) Однако разработчики Django среднего и продвинутого уровня могут лучше использовать модели Django, которые представляют собой более сложные функции.

Упаковка основных функций

Веб-фреймворк Django используется уже более десяти лет и был тщательно протестирован и улучшен очень активным сообществом. У него даже есть некоммерческая организация; Фонд программного обеспечения Django продвигает, поддерживает и продвигает веб-фреймворк Django. Самая сильная сторона Django — это его большой набор функций — с более чем 10 000 пакетов Django платформа охватывает практически все, что вам нужно для веб-приложения. Пакеты включают API, системы управления контентом, аутентификацию пользователей, проверку форм и защиту CAPTCHA.

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

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

Сделайте управление базой данных более похожим на Python

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

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

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

Создание динамических страниц с помощью шаблонов

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

Шаблон HTML позволяет разработчикам Django комбинировать статические элементы (включая элементы дизайна, такие как цвета, логотипы или текст) с данными (такими как имена пользователей или местоположения) для создания новой веб-страницы на лету. С помощью model-view-controller (MVC), если вы хотите, чтобы ваше приложение приветствовало пользователя по имени при входе в систему, вы можете создать шаблон, отображающий статический текст («Добро пожаловать на сайт, X»), а затем использовать динамический заполнитель для автоматического отображения имени пользователя из вашей базы данных. Когда страница отображается, она будет сочетать динамические элементы со статическими, чтобы создать бесшовный пользовательский интерфейс.

Повышение безопасности

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

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

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

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

Масштабирование Django

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

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

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

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