Фреймворк django: The Web framework for perfectionists with deadlines
Django — Википедия
Django (Джанго, [‘dʒæŋɡoʊ][6]) — свободный фреймворк для веб-приложений на языке Python, использующий шаблон проектирования MVC[7]. Проект поддерживается организацией Django Software Foundation.
Сайт на Django строится из одного или нескольких приложений, которые рекомендуется делать отчуждаемыми и подключаемыми. Это одно из существенных архитектурных отличий этого фреймворка от некоторых других (например, Ruby on Rails). Один из основных принципов фреймворка — DRY (англ. Don’t repeat yourself)
Также, в отличие от других фреймворков, обработчики URL в Django конфигурируются явно при помощи регулярных выражений.
Для работы с базой данных Django использует собственный ORM, в котором модель данных описывается классами Python, и по ней генерируется схема базы данных.[8]
Пример веб-приложения, которое показывает «Hello World!»:
1 from django.http import HttpResponse 2 3 def hello(request): 4 return HttpResponse("Hello world")
Веб-фреймворк Django используется в сайтах, Instagram[9], Disqus[10], Mozilla[11], The Washington Times, Pinterest, YouTube, Google и др.
Также Django используется в качестве веб-компонента в проектах :
- Graphite[12] — система построения графиков и наблюдения
- FreeNAS — свободная реализация системы хранения и обмена файлами и др.
- Расселл Кейт-Маги (англ. Russell Keith-Magee)
- Адриан Головатый (англ. Adrian Holovaty),
- Саймон Виллисон (англ. Simon Willison),
- Джейкоб Каплан-Мосс (англ. Jacob Kaplan-Moss),
- Уилсон Майнер (англ. Wilson Miner)
Разработчики заявляют, что не обязуются строго придерживаться какой бы то ни было методологии в развитии проекта, предпочитая делать то, что кажется им наиболее логичным.[13]
Архитектура Django похожа на «Модель-Представление-Контроллер» (MVC). Контроллер классической модели MVC примерно соответствует уровню, который в Django называется Представление (англ. View), а презентационная логика Представления реализуется в Django уровнем Шаблонов (англ. Template). Из-за этого уровневую архитектуру Django часто называют «Модель-Шаблон-Представление» (MTV).
Первоначальная разработка Django как средства для работы новостных ресурсов достаточно сильно отразилась на его архитектуре: он предоставляет ряд средств, которые помогают в быстрой разработке веб-сайтов информационного характера. Так, например, разработчику не требуется создавать контроллеры и страницы для административной части сайта, в Django есть встроенное приложение для управления содержимым, которое можно включить в любой сайт, сделанный на Django, и которое может управлять сразу несколькими сайтами на одном сервере. Административное приложение позволяет создавать, изменять и удалять любые объекты наполнения сайта, протоколируя все совершённые действия, и предоставляет интерфейс для управления пользователями и группами (с пообъектным назначением прав).
В дистрибутив Django также включены приложения для системы комментариев, синдикации RSS и Atom, «статических страниц» (которыми можно управлять без необходимости писать контроллеры и представления), перенаправления URL и другое.
Некоторые возможности Django:
- ORM, API доступа к БД с поддержкой транзакций[14]
- встроенный интерфейс администратора,[15] с уже имеющимися переводами на многие языки
- диспетчер URL на основе регулярных выражений[16]
- расширяемая система шаблонов с тегами и наследованием[17]
- система кеширования[18]
- интернационализация[19]
- подключаемая архитектура приложений, которые можно устанавливать на любые Django-сайты
- «generic views» — шаблоны функций контроллеров
- авторизация и аутентификация, подключение внешних модулей аутентификации: LDAP, OpenID и проч.
- система фильтров («middleware») для построения дополнительных обработчиков запросов, как например включённые в дистрибутив фильтры для кеширования, сжатия, нормализации URL и поддержки анонимных сессий
- библиотека для работы с формами (наследование, построение форм по существующей модели БД)[20]
- встроенная автоматическая документация по тегам шаблонов и моделям данных, доступная через административное приложение
Некоторые компоненты фреймворка между собой связаны слабо, поэтому их можно достаточно просто заменять на аналогичные. Например, вместо встроенных шаблонов можно использовать Mako или Jinja.
В то же время заменять ряд компонентов (например, ORM) довольно сложно.
Помимо возможностей, встроенных в ядро фреймворка, существуют пакеты, расширяющие его возможности. Возможности, предоставляемые пакетами, а также полный перечень пакетов удобно отслеживать через специальный ресурс — www.djangopackages.com.
Версии и хронология их выходаПравить
Некоторые выпуски Django получают статус «релиза с долгосрочной поддержкой» (LTS)[21]. Они получают обновления по безопасности и по защите от потерь данных на гарантированный период времени, обычно от трёх лет.
Версия | Дата[22] | Примечание[23] |
---|---|---|
Старая версия, не поддерживается: 0.90[24] | 16 ноя 2005 | |
Старая версия, не поддерживается: 0.91[25] | 11 янв 2006 | «new-admin» |
Старая версия, не поддерживается: 0.95[26] | 29 июл 2006 | «magic removal» |
Старая версия, не поддерживается: 0.96[27] | 23 мар 2007 | «newforms», средства тестирования |
Старая версия, не поддерживается: 1.0[28] | 3 сен 2008 | Стабильная API, admin-инструменты «отсоединены» от основных, поддержка unicode |
Старая версия, не поддерживается: 1.1[29] | 29 июл 2009 | Агрегация (в ORM), транзакционные тесты |
Старая версия, не поддерживается: 1.2[30] | 17 май 2010 | Множественные db-коннекты, CSRF, model-валидатор |
Старая версия, не поддерживается: 1.3[31] | 23 мар 2011 | Вьюшки на основе классов, поддержка static-файлов |
Старая версия, не поддерживается: 1.4 LTS[32] | 23 мар 2012 | Поддержка timezone, «in browser» тесты, шаблоны приложений. |
Старая версия, не поддерживается: 1.5[33] | 26 фев 2013 | Поддержка Python 3, конфигурируемые user model |
Старая версия, не поддерживается: 1.6[34] | 6 ноя 2013 | Управление db-транзакциями, объединение пулов. |
Старая версия, не поддерживается: 1.7[35] | 2 сен 2014 | Миграции, загрузка и конфигурация приложений. |
Старая версия, не поддерживается: 1.8 LTS[36] | 1 апр 2015 | Встроена поддержка нескольких шаблонизаторов. LTS с поддержкой до апреля 2018 |
Старая версия, не поддерживается: 1.9[37] | 1 дек 2015 | Автоматическая проверка паролей, новый стиль admin-интерфейса. |
Старая версия, не поддерживается: 1.10[38] | 1 авг 2016 | Полнотекстовый поиск для PostgreSQL. Новый стиль middleware |
Старая версия, не поддерживается: 1.11 LTS[39] | 4 апр 2017 | Последняя версия с поддержкой Python 2.7. LTS с поддержкой до апреля 2020 года |
Старая версия, не поддерживается: 2.0[40] | 2 дек 2017 | Первая версия с поддержкой только Python 3, упрощенный синтаксис маршрутизации URL, «админка» с дружественным мобильным интерфейсом. |
Старая версия, не поддерживается: 2.1[41] | 1 авг 2018 | Разрешение view для моделей администратора. |
Старая поддерживаемая версия: 2.2 LTS[42] | апр 2019 | LTS с поддержкой до апреля 2022 года |
Старая поддерживаемая версия: 3.0 | 2 дек 2019 | Поддержка MariaDB, ASGI |
Текущая версия: 3.1 | 4 авг 2020 | Асинхронные view и middleware, JSONField для всех поддерживаемых БД |
Тестовая версия: 3.2 LTS | апр 2021 | LTS с поддержкой до апреля 2024 года |
Легенда: Старая версия, не поддерживается Старая поддерживаемая версия Текущая версия Тестовая версия Будущая версия |
На базе Django разработан ряд готовых решений со свободной лицензией[43], среди которых интернет-магазины, системы управления содержимым, а также более узконаправленные проекты.
Конфигурация сервераПравить
Django проектировался для работы под управлением Apache с модулем mod python и с использованием PostgreSQL в качестве базы данных.
С включением поддержки WSGI, Django может работать под управлением FastCGI, mod wsgi, или SCGI на Apache и других серверах (lighttpd, nginx,…), сервера uWSGI.
В настоящее время, помимо базы данных PostgreSQL, Django может работать с другими СУБД: MySQL, SQLite, Microsoft SQL Server, DB2, Firebird, SQL Anywhere и Oracle.
В составе Django присутствует собственный веб-сервер для разработки. Сервер автоматически определяет изменения в файлах исходного кода проекта и перезапускается, что ускоряет процесс разработки на Python. Но при этом он работает в однопоточном режиме и пригоден только для процесса разработки и отладки приложения.
Django можно развернуть на PaaS-сервисах RedHat:
Django на хостинге GoogleПравить
Google App Engine Python[50] позволяет использовать для работы любую версию Django.
Существуют некоторые особенности при работе с Django в Google App Engine Python 2.7.
- Django ОRМ несовместим с хранилищем App Engine Datastore, который представляет собой NoSQL хранилище. Это в свою очередь делает ограниченной работу определённых функций фреймворка, в частности, встроенного административного интерфейса[51].
- Также с Django можно работать через Google cloud-sql[52]. Это позволяет использовать все возможности фреймворка, как и при работе с обычными реляционными базами.[53]
Существует community-версия Django-nonrel[54], адаптированная для работы с нереляционными хранилищами данных, которая позволяет полноценно (насколько это возможно технически) использовать Django на платформе Google App Engine. А подключаемое приложение django-dbindexer[55] позволяет даже эмулировать JOIN в нереляционных хранилищах данных.
О моем опыте использования Django Framework — @emacsway’s blog
В свое время кто-то красиво сказал, что безопасность — это баланс между затратами на защиту и потенциальной выгодой от взлома.
Нет смысла превышать этот баланс.
Принимая решение относительно IT-технологий, мы тоже пытаемся найти баланс между затратами на содержание технологии (в том числе поиск и обучение новых специалистов) и обретаемой функциональностью.
Django framework, безусловно, доставляет определенные хлопоты, но вместе с тем он позволяет решать огромный спектр задач достаточно быстро, и легко находить исполнителей.
Иными словами, Django framework удешевляет разработку программного обеспечения на Python.
При грамотном подходе, можно использовать все преимущества Django framework и не стать заложником его недостатков.
Больше всего хлопот доставляет Django ORM, поэтому мы начнем с него.
Принцип “Защитного программирования” требует делать невозможным создание невалидного объекта.
Для валидации должны использоваться сеттеры объекта.
В Django Model мы должны явно вызвать метод Model.full_clean() перед сохранением объекта, что, конечно же, часто никто не делает, и это часто приводит к различным проблемам.
Эта проблема известна как “семантическое сопряжение” а также “G22: Make Logical Dependencies Physical” and “G31: Hidden Temporal Couplings” .
Можно решить эту проблему технически, но обычно достаточно просто соблюдать дисциплину разработки.
Django Model реализует паттерн ActiveRecord, который создает простоту использования за счет нарушения принципа Single responsibility principle (SRP), из-за чего его часто называют антипаттерном.
Этот паттерн смешивает в одном классе бизнес-логику и служебную логику доступа к данным.
К сожалению, эта простота уместна только в простых случаях.
В более-менее серьезном приложении от этого больше проблем, чем достоинств.
Поскольку Django не реализует паттерна Repository, было бы желательно сокрыть реализацию доступа к источнику данных хотя бы посредством “Сервисного Слоя”.
Это необходимо потому, что возможностей Django ORM не всегда достаточно для построения сложных запросов или для создания сложных моделей.
Тогда приходится подменять Django ORM сторонними инструментами или реализацией в голом виде паттерна DataMapper, к этому вопросу мы еще вернемся.
В любом случае, реализация доступа к данным должна быть сокрыта от приложения.
В статье “Clean Architecture in Django” вы можете найти пример использования паттерна Repository для сокрытия источника данных в Django-приложении.
Django ORM не реализует паттерна Identity Map, и, как результат этого, возникает много дублируемых запросов.
Частично этот недостаток смягчается наличием prefetch_related().
Существуют реализации этого паттерна в виде сторонних библиотек,
django-idmapper,
django-idmap.
Но они никаких функций кроме кэширования не выполняют, и за транзакционной согласованностью данных не следят.
Правда, вы вряд-ли заметите эту проблему, так как Django приложение обычно обрабатывает HTTP-запрос одной транзакцией.
Мало того, что Вы получаете несколько экземпляров одного и тоже же объекта в памяти потока, что может привести к утрате да
общие вопросы — КОМТЕТ — хостинг
Вы можете посмотреть предыдущие релизы здесь:
Django 1.0
Почему этот проект существует?
Django появился из-за практической необходимости: World Online, изданию, ориентированному на веб-публикации, требовались Web-приложения для веб-публикаций. В быстром темпе мира новостей, World Online зачастую имеет лишь несколько часов, чтобы с помощью комплексного веб-приложения реализовать свои идеи в жизнь.
В то же самое время Web-разработчики последовательно становились перфекционистами, когда речь шла о практиках Web-развития.
Осенью 2003, интернет-разработчики (Adrian Holovaty и Simon Willison) забросили PHP и начали использовать Python для разработки веб-сайтов. Поскольку они создавали интерактивные сайты с высокой посещаемостью, такие как Lawrence.com, они начали разрабатывать фреймворк для Web-разработок, который позволил бы им сделать Web-приложения всё быстрее и быстрее. В течение более чем двух лет они постоянно улучшали этот фреймворк, добавляя различные усовершенствования.
Летом 2005-го года, World Online приняло решение открыть исходный код получившегося продукта — фреймворка Django. Невозможно было бы создать Django без целого ряда продуктов с открытым исходным кодом – Apache, Python, и PostgreSQL и мы очень рады, что сможем быть полезными сообществу разработчиков ПО с открытым исходным кодом.
Что означает “Django”, и как его произносить?
Django назван в честь Django Reinhardt, цыганского джаз-гитариста (с 1930-х до ранних 1950-х). В наши дни он признан одним из лучших гитаристов всех времен.
Послушайте его музыку. Вам понравится.
Django произносится как [ЖЭНГ-Оу] аналогично [ФЭНГ-Оу]. “D” не произносится.
Мы также записали аудио клип произношения.
Устойчив ли Django?
Да. World Online использовал Django более трех лет. Сайты, созданные на Django, выдержали нагрузку в один миллион кликов в час и большое количество DoS-атак. Да, он весьма устойчив.
Масштабируется ли Django?
Да. По сравнению со стоимостью временем на разработку, аппаратные средства дешевы, поэтому Django разработан для использования любого количества аппаратных средств.
Django использует архитектуру “shared-nothing”, это означает, что вы на любом уровне можете добавить такие аппаратные средства как: серверы баз данных, серверы кэширования или серверы Web-приложений.
Фреймворк отделяет такие компоненты, как слой доступа к данным и логику приложения. И он поставляется с простым, но мощным cache framework.
Кто за этим стоит?
Изначально Django был разработан в Web-отделе газеты в Лоренсе, штат Канзас, США. Django теперь в ведении международной группы добровольцев.
Какие сайты используют Django?
Django является MVC-фреймворком, но вы называете контроллер «видом», а представление «шаблоном». Почему вы не используете стандартные имена?
Ок, стандартные наименования спорны.
В нашей интерпретации MVC, «вид» описывает данные, представленные пользователю. Неважно как данные выглядят, а важнее знать, какие данные представлены. «Вид» описывает, какие данные вы видите, а не то, как вы их видите. Это тонкое различие.
Так, в нашем случае, «вид» — это callback-функция Python для конкретного URL, потому что эта функция описывает представленные данные.
Кроме того, разумно отделить данные от представления — вот где на помощь приходят шаблоны. В Django, «вид» предоставляет данные, и передает их в шаблон, который описывает, в каком виде они должны быть представлены.
Где же тогда здесь «контроллер»? В случае с Django, это вероятно непосредственно сам фреймворк: механизм, который посылает запрос соответствующему виду, согласно конфигурации Django URL.
Если вы изголодались по акронимам, то вы можете сказать, что Django является “MTV”- фреймворком, где M — модель, T — шаблон и V — вид. Эта разбивка имеет гораздо больше смысла.
<Фреймворк X> выполняет <функцию Y> — почему не Django?
Мы хорошо знаем, что существуют и другие Web-фреймворки, и мы не прочь позаимствовать идеи там, где это необходимо. Однако, Django был разработан именно потому, что мы были недовольны сложившимся положением вещей, так что имейте в виду, что фраза «потому что <Фреймворк X> имеет эту функцию”, не будет достаточным основанием, чтобы добавить её в Django.
Почему вы написали весь Django «с нуля», вместо того чтобы использовать другие библиотеки Python?
Когда несколько лет назад Adrian и Simon создавали Django, они посвятили немало времени исследованиям различных доступных Web-фреймворков Python.
По нашему мнению, ни один из них не удовлетворял наши запросы на 100 процентов.
Мы немного придирчивы. Вы даже можете нас назвать перфекционистами.
Через какое-то время, мы наткнулись на библиотеки с открытым исходным кодом, которые выполняли то, что мы уже осуществили. Увидеть, как другие люди решают задачи так же, как мы, было для нас утешением. Но интегрировать внешний код было уже слишком поздно, так как мы уже написали, проверили и применили наш собственный фреймворк в различных условиях — и наш собственный код великолепно удовлетворил все наши потребности.
Однако, в большинстве случаев, мы обнаружили, что существующие фреймворки/инструменты имеют некие фундаментальные, или даже фатальные недостатки, которые заставили нас быть разборчивее. Не существует инструмента, подходящего нам на 100 %.
Как мы уже говорили: мы придирчивы.
Мы опубликовали наши взгляды на странице design philosophies page.
Действительно ли Django является CMS (Система управления контентом)?
Нет, Django не является CMS, или каким-либо видом “turnkey product”. Это Web-фреймворк; это инструмент программирования, который позволяет вам создавать Web-сайты.
Например, нет большого смысла в сравнении Django с такой программой как Drupal, потому что Django — это фреймворк, который вы используете для создания таких продуктов, как Drupal.
Конечно, интерфейс администратора сайта Django великолепен и экономит время — но это всего лишь один из модулей Django. Кроме того, несмотря на то, что Django имеет специальные возможности для создания CMS — приложений, это не означает, что он не подходит для создания любых других приложений.
Как я могу скачать документацию Django для её прочтения в автономном режиме?
Документы Django доступны в директории docs любого архива Django. Эти документы находятся в формате ReST (ReStructured Text), и каждый текстовый файл соответствуют Web-странице на официальном сайте Django.
Т.к. документация хранится в общедоступном репозитории, вы можете просматривать изменения в документации, а также и изменения кода.
Технически, документы на сайте Django генерируются из последних версий этих ReST-документов, поэтому документы на сайте Django могут предоставить больше информации, чем документы, находящиеся в последней версии Django.
Где я могу нанять Django-разработчиков?
На странице найм разработчиков Вы можете посмотреть список Django-разработчиков, которые будут рады вам помочь.
Возможно, вас заинтересует размещение работы на сайте http://djangogigs.com/ . Если вы хотите найти людей, работающих с Django в том месте, где вы живете, тогда посмотрите здесь: http://djangopeople.net/.
Оригинал статьи на docs.djangoproject.com
Перевод КОМТЕТ komtet.ru
Django Web Framework (Python) — Изучите веб-разработку
Django — чрезвычайно популярный и полнофункциональный серверный веб-фреймворк, написанный на Python. Этот модуль показывает вам, почему Django является одной из самых популярных сред веб-серверов, как настроить среду разработки и как начать использовать ее для создания собственных веб-приложений.
Предварительные требования
Перед запуском этого модуля вам не нужно знать Django. В идеале вам необходимо понять, что такое серверное веб-программирование и веб-фреймворки, прочитав разделы нашего модуля «Первые шаги серверного веб-программирования».
Рекомендуется общее знание концепций программирования и Python, но не обязательно для понимания основных концепций.
Примечание : Python — один из самых простых языков программирования для начинающих. Тем не менее, если вы хотите лучше понять этот модуль, в Интернете есть множество бесплатных книг и руководств, которые могут вам помочь (новые программисты могут захотеть проверить страницу Python для непрограммистов на python.org wiki).
Направляющие
- Введение в Django
- В этой первой статье о Django мы отвечаем на вопрос «Что такое Django?» и расскажем, что делает эту веб-платформу особенной. Мы опишем основные функции, включая некоторые расширенные функции, которые у нас не будет времени подробно описывать в этом модуле. Мы также покажем вам некоторые из основных строительных блоков приложения Django, чтобы дать вам представление о том, что оно может делать, прежде чем вы его настроите и начнете играть.
- Настройка среды разработки Django
- Теперь, когда вы знаете, для чего предназначен Django, мы покажем вам, как настроить и протестировать среду разработки Django в Windows, Linux (Ubuntu) и macOS — какую бы распространенную операционную систему вы ни использовали, эта статья должна дать вам то, что вам нужно иметь возможность начать разработку приложений Django.
- Учебник по Django: веб-сайт местной библиотеки
- В первой статье нашей серии практических руководств объясняется, что вы узнаете, и дается обзор «локальной библиотеки» — пример веб-сайта, над которым мы будем работать и развивать в последующих статьях.
- Учебное пособие по Django, часть 2: Создание скелета веб-сайта
- В этой статье показано, как создать «каркасный» проект веб-сайта, который затем можно будет заполнить настройками, URL-адресами, моделями, представлениями и шаблонами для конкретного сайта.
- Django, часть 3: Использование моделей
- В этой статье показано, как определять модели для веб-сайта LocalLibrary — модели представляют структуры данных, в которых мы хотим хранить данные нашего приложения, а также позволяют Django хранить данные в базе данных для нас (и изменять их позже).В нем объясняется, что такое модель, как она объявляется и некоторые из основных типов полей. Здесь также кратко показаны некоторые из основных способов доступа к данным модели.
- Django, часть 4: сайт администратора Django
- Теперь, когда мы создали модели для веб-сайта LocalLibrary , мы воспользуемся сайтом администратора Django, чтобы добавить некоторые «настоящие» данные книги. Сначала мы покажем вам, как зарегистрировать модели на сайте администратора, затем мы покажем вам, как войти в систему и создать некоторые данные. В конце мы покажем несколько способов, с помощью которых вы можете улучшить представление админки.
- Django Tutorial Часть 5: Создание домашней страницы
- Теперь мы готовы добавить код для отображения нашей первой полной страницы — домашней страницы для LocalLibrary , которая показывает, сколько записей у нас есть для каждого типа модели, и предоставляет ссылки для навигации на боковой панели на другие наши страницы. Попутно мы получим практический опыт в написании базовых карт URL и представлений, получении записей из базы данных и использовании шаблонов.
- Django Tutorial Part 6: Generic list and detail views
- Это руководство расширяет наш веб-сайт LocalLibrary , добавляя страницы со списками и подробностями для книг и авторов.Здесь мы узнаем об общих представлениях на основе классов и покажем, как они могут уменьшить объем кода, который вам нужно написать для общих случаев использования. Мы также рассмотрим обработку URL более подробно, показывая, как выполнять базовое сопоставление с образцом.
- Учебник по Django, часть 7: Фреймворк сессий
- Это руководство расширяет наш веб-сайт LocalLibrary , добавляя счетчик посещений на основе сеанса на домашнюю страницу. Это относительно простой пример, но он показывает, как вы можете использовать структуру сеанса для обеспечения постоянного поведения анонимных пользователей на ваших собственных сайтах.
- Учебник по Django, часть 8: Аутентификация и разрешения пользователей
- В этом руководстве мы покажем вам, как разрешить пользователям входить на ваш сайт с их собственными учетными записями, и как контролировать, что они могут делать и видеть, в зависимости от того, вошли они или нет, и их прав . В рамках этой демонстрации мы расширим веб-сайт LocalLibrary , добавив страницы входа и выхода, а также страницы для пользователей и сотрудников для просмотра книг, которые были заимствованы.
- Учебник по Django, часть 9: Работа с формами
- В этом руководстве мы покажем вам, как работать с HTML-формами в Django, и, в частности, самый простой способ написания форм для создания, обновления и удаления экземпляров модели. В рамках этой демонстрации мы расширим веб-сайт LocalLibrary , чтобы библиотекари могли обновлять книги, а также создавать, обновлять и удалять авторов с помощью наших собственных форм (вместо использования приложения администратора).
- Учебник по Django, часть 10: Тестирование веб-приложения Django
- По мере роста веб-сайтов их становится все труднее тестировать вручную — не только становится больше для тестирования, но и по мере усложнения взаимодействия между компонентами небольшое изменение в одной области может потребовать множества дополнительных тестов для проверки его влияния на другие области.Один из способов смягчить эти проблемы — написать автоматические тесты, которые можно легко и надежно запускать каждый раз, когда вы вносите изменения. В этом руководстве показано, как автоматизировать модульное тестирование вашего веб-сайта с помощью среды тестирования Django.
- Django Tutorial Part 11: Deploying Django to production
- Теперь, когда вы создали (и протестировали) замечательный веб-сайт LocalLibrary , вы захотите установить его на общедоступном веб-сервере, чтобы к нему могли получить доступ сотрудники библиотеки и члены через Интернет.В этой статье представлен обзор того, как вы можете найти хост для развертывания вашего веб-сайта и что вам нужно сделать, чтобы подготовить ваш сайт к работе.
- Безопасность веб-приложений Django
- Защита пользовательских данных — неотъемлемая часть дизайна любого веб-сайта. Ранее мы объясняли некоторые из наиболее распространенных угроз безопасности в статье «Веб-безопасность» — эта статья представляет собой практическую демонстрацию того, как встроенные средства защиты Django справляются с такими угрозами.
Учебное пособие по
Учебное пособие по
Оценки
Следующий экзамен проверит ваше понимание того, как создать веб-сайт с помощью Django, как описано в руководствах, перечисленных выше.
- Сделай сам Django mini blog
- В этом экзамене вы будете использовать некоторые знания, полученные из этого модуля, для создания собственного блога.
Главная — Django REST framework
GitHub
Следующий
Предыдущая
Поиск
Фреймворк Django REST
- Дом
- Учебник
- Быстрый старт
- 1 — Сериализация
- 2 — Запросы и ответы
- 3 — Просмотры на основе классов
- 4 — Аутентификация и разрешения
- 5 — Отношения и гиперссылки API
- 6 — Viewsets и маршрутизаторы
- Руководство по API
- Запросы
- Ответы
- Просмотры
- Общие представления
- Наборы просмотров
- Маршрутизаторы
- Парсеры
- Рендереры
- Сериализаторы
- Поля сериализатора
- Отношения сериализатора
- Валидаторы
- Аутентификация
- Разрешения
- Кеширование
- Дросселирование
- Фильтрация
- Пагинация
- Управление версиями
- Согласование содержания
- Метаданные
- Схемы
- Суффиксы формата
- Возврат URL
- Исключения
- Коды состояния
- Тестирование
Быстрый старт — Django REST framework
GitHub
Следующий
Предыдущая
Поиск
Фреймворк Django REST
- Дом
- Учебник
- Быстрый старт
- 1 — Сериализация
- 2 — Запросы и ответы
- 3 — Просмотры на основе классов
- 4 — Аутентификация и разрешения
- 5 — Отношения и гиперссылки API
- 6 — Viewsets и маршрутизаторы
- Руководство по API
- Запросы
- Ответы
- Просмотры
- Общие представления
- Наборы просмотров
- Маршрутизаторы
- Парсеры
- Рендереры
- Сериализаторы
- Поля сериализатора
- Отношения сериализатора
- Валидаторы
- Аутентификация
- Разрешения
- Кеширование
- Дросселирование
- Фильтрация
- Пагинация
- Управление версиями
- Согласование содержания
- Метаданные
- Схемы
- Суффиксы формата
- Возврат URL
- Исключения
- Коды состояния
- Тестирование
- Настройки
- Темы
- Документирование вашего API
- Клиенты API
- Интернационализация
- AJAX, CSRF и CORS
- HTML и формы
- Расширение браузера
Настройки — Django REST framework
GitHub
Следующий
Предыдущая
Поиск
Фреймворк Django REST
- Дом
- Учебник
- Быстрый старт
- 1 — Сериализация
- 2 — Запросы и ответы
- 3 — Просмотры на основе классов
- 4 — Аутентификация и разрешения
- 5 — Отношения и гиперссылки API
- 6 — Viewsets и маршрутизаторы
- Руководство по API
- Запросы
- Ответы
- Просмотры
- Общие представления
- Наборы просмотров
- Маршрутизаторы
- Парсеры
- Рендереры
- Сериализаторы
- Поля сериализатора
- Отношения сериализатора
- Валидаторы
- Аутентификация
- Разрешения
- Кеширование
- Дросселирование
- Фильтрация
- Пагинация
- Управление версиями
- Согласование содержания
- Метаданные
- Схемы
- Суффиксы формата
- Возврат URL
- Исключения
- Коды состояния
- Тестирование
- Настройки
- Темы
- Документирование вашего API
- Клиенты API
- Интернационализация
- AJAX, CSRF и CORS
- HTML и формы
- Улучшения браузера
- Доступный для просмотра API
.