MyTetra Share
Делитесь знаниями!
Глава 1. Введение в Django
Время создания: 07.02.2021 21:36
Автор: alensav
Текстовые метки: Глава 1. Введение в Django
Раздел: Django
Запись: alensav/MyTetra2/main/base/1612722967yyrbsi6kki/text.html на raw.githubusercontent.com



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

Содержание

Что такое среда разработки?

Шаблон MVC разработки

История Django

Как читать эту книгу

Необходимые знания в программировании

Необходимые знания языка Python

Требуемая версия Django

Получение помощи

Стиль исходного кода

Шаблоны

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

Модели

Перевод © Попов Руслан <ruslan.popov • gmail>

Данная книга посвящена Django, среде[1 ] WEB[2 ] разработки, которая позволяет сэкономить время и превращает работу в развлечение. Используя Django, вы можете с минимальными усилиями создавать и обслуживать высококачественные приложения.

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

Цель данной книги — сделать вас экспертом по Django. Книга сфокусирована на двух вещах. Первое, мы подробно объясним, как работает Django и как создавать приложения с её помощью. Второе, там где это необходимо, мы обсудим высокоуровневую концепцию, отвечая на вопрос «Как я могу эффективно применять эти инструменты в своих проектах?» Читая эту книгу, вы получите навыки необходимые для разработки мощных приложений с простым поддерживаемым кодом.

Что такое среда разработки?

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

Для того, чтобы ответить на этот вопрос давайте рассмотрим дизайн приложения написанного на языке Python без использования среды разработки. На протяжении всей книги мы будем использовать данный подход, чтобы показать вам основные способы выполнить работу без вспомогательных средств, в надежде, что вы разберётесь почему эти средства так полезны. Также важно знать как можно решить задачу на низком уровне, так как высокий уровень (вспомогательные средства) не всегда доступен. И очень важно то, что знание почему что-то работает именно так, а не иначе, делает вас опытнее.

Одним из простых, наиболее прямолинейных способов создать с нуля вебприложение на языке Python является использование стандарта Common Gateway Interface (CGI), который был популярен, начиная с 1998 года. Кратко рассмотрим как это работает: создаётся скрипт на языке Python, который выводит HTML, скрипт сохраняется на веб сервере в файле с расширением .cgi, затем к скрипту можно обращаться через веб браузер. Вот и всё.

Ниже приведён простой CGI скрипт, написанный на языке Python, который отображает десять наиболее свежих книг из базы данных. Не беспокойтесь о деталях, просто рассмотрите как он работает:

#!/usr/bin/env python

import MySQLdb

print "Content-Type: text/html"
print
print "<html><head><title>Книги</title></head>"
print "<body>"
print "<h1>Книги</h1>"
print "<ul>"

connection = MySQLdb.connect(user='me', passwd='letmein', db='my_db')
cursor = connection.cursor()
cursor.execute("SELECT name FROM books ORDER BY pub_date DESC LIMIT 10")
for row in cursor.fetchall():
    print "<li>%s</li>" % row[0]

print "</ul>"
print "</body></html>"

connection.close()

Во-первых, согласно требованиям CGI, код выводит строку «Content-Type», затем пустую строку. Скрипт выводит необходимые HTML теги, подключается к базе данных и выполняет запрос для получения имён последних десяти книг. Обрабатывая результат запроса, скрипт создаёт ненумерованный список имён. Наконец, скрипт закрывает HTML теги и закрывает соединение с базой данных.

Для одиночной динамической страницы, подобной этой, методика «написать всё с нуля» не всегда плоха. Во-первых, этот код прост для понимания даже неопытным разработчиком и его легко установить на «боевую»[3 ] систему — просто сохранить в файл с расширением .cgi и зайди браузером.

Но несмотря на свою простоту, данный подход имеет ряд проблем и недостатков. Задайте себе эти вопросы:

  • Что произойдёт, если потребуется обеспечить работу множества компонентов вашего приложения с базой данных? Несомненно, что код для подключения к базе не должен быть скопирован в каждый отдельный CGI скрипт. Придётся вынести этот код в общую библиотеку функций.
  • Действительно ли разработчик должен беспокоиться о выводе строки «Content-Type» и помнить о необходимости закрывать соединение с базой данных? Такие вещи снижают производительность разработчика и увеличивают вероятность появления ошибок в коде. Такими задачами должна заниматься некая общая инфраструктура.
  • Что произойдёт, если этот код будет использоваться во множестве сред, каждая со своей базой данных и логином? В этом случае потребуется вводить некоторую конфигурацию, специфичную для среды исполнения.
  • Что произойдёт, если дизайнер, который не имеет опыта разработки на языке Python, пожелает поменять вид страницы? Один неверный символ может уронить целое приложение. В идеале, при отображении страницы, логика страницы — получение названий книг из базы данных — должна быть отделена от вывода HTML. В этом случае дизайнер может вносить необходимые изменения в HTML без влияния на всё остальное.

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



[1 ] Здесь и далее слово Django будет рассматриваться как слово женского рода, от «среда».

[2 ] Здесь и далее речь будет идти о приложениях для Интернет, т.е., о сайтах.

[3 ] Здесь и далее этот термин подразумевает production (FIXME) WEB-сервер.



Пред.  

 

 След.

DjangoBook 

Начало

 Шаблон MVC разработки


Так же в этом разделе:
 
MyTetra Share v.0.64
Яндекс индекс цитирования