SlideShare a Scribd company logo
1 of 18
Download to read offline
Django
Сергей Масленников
группа 08-506
Архитектура
MVC
Controller
View
Model
View
Template
MTV
Возможности
• подключаемые приложения
• ORM
• диспетчер URL на основе регулярных выражений
• расширяемая система шаблонов с тегами и наследованием
• авторизация и аутентификация
• библиотека для работы с формами (наследование, построение
форм по существующей модели БД)
• встроенный интерфейс администратора
Подключаемые приложения
• Проекты состоят из приложений
• Приложения могут использоваться в разных
проектах
• Приложениями можно делиться :)
Model
Модель в Django — это описание данных, которые
хранятся в БД, выполненное в виде кода на языке
Python.
Model
Модель:'
'
class Publisher(models.Model):
name = models.CharField(max_length=30)
address = models.CharField(max_length=50)
city = models.CharField(max_length=60)
country = models.CharField(max_length=50)
website = models.URLField()
Автоматически сгенерированная таблица:'
'
CREATE TABLE "books_publisher" (
"id" serial NOT NULL PRIMARY KEY,
"name" varchar(30) NOT NULL,
"address" varchar(50) NOT NULL,
"city" varchar(60) NOT NULL,
"country" varchar(50) NOT NULL,
"website" varchar(200) NOT NULL
);
ORM
Простые запросы:'
• Publisher.objects.all()
• Publisher.objects.filter(name=‘Apress’) - возвращает список
• Publisher.objects.get(name=‘Apress') - возвращает один элемент
• Publisher.objects.order_by(«address»)
Составные запросы:'
• Publisher.objects.filter(country="U.S.A.").order_by("-name")
Представления и привязка к URL
Представление:'
from django.http import HttpResponse
def hello(request):
return HttpResponse("Hello, world")
URL:'
from django.conf.urls.defaults import *
from mysite.views import hello
urlpatterns = patterns('',
('^hello/$', hello),
)
Как Django обрабатывает запрос
• Приходит запрос к /hello/.
• Django просматривает файл привязки в поисках первого
шаблона, который совпадёт с запрошенным URL.
• Если такой шаблон найден, Django вызывает
ассоциированную с ним функцию представления.
• Функция представления возвращает HttpResponse.
• Django преобразовывает HttpResponse в соответствующий
HTTP отклик, который реализует страницу.
Динамические URL
Представление:'
def hours_ahead(request, offset):
dt = datetime.datetime.now() + datetime.timedelta(hours=offset)
html = "<html><body>In %s hour(s), it will be %s.</body></html>" % (offset, dt)
return HttpResponse(html)
URL:'
urlpatterns = patterns('',
(r'^time/plus/d+/$', hours_ahead),
)
Шаблоны
• Вы не можете создать переменную или вызвать функцию с
параметрами
• Любой текст взятый в скобки {{ }} является переменной
({{ name }})
• Любой текст взятый в фигурные скобки и проценты
является тегом ({% for item in list %})
• Конструкция {{ name | lower }} является фильтром
Теги
• if/else
{% if today_is_weekend %}
<p>Welcome to the weekend!</p>
{% endif %}
'
• for
<ul>
{% for item in tem_list %}
<li>{{ item.name }}</li>
{% endfor %}
</ul>
'
• forloop/forloop0
{% for item in list %}
<p>{{ forloop.counter }}: {{ item }}</p>
{% endfor %}
Фильтры
Шаблонные фильтры представляют собой простой способ
изменения значения переменных перед их отображением
{{ name|lower }}
Использование множественного фильтра
{{ my_list|first|upper }}
Некоторые фильтры принимают аргументы
{{ text|truncatewords:"30" }}
Взаимодействие шаблонов и представлений
Плохой способ:'
def current_datetime(request):
now = datetime.datetime.now()
fp = open('/home/djangouser/templates/mytemplate.html')
t = Template(fp.read())
fp.close()
html = t.render(Context({'current_date': now}))
return HttpResponse(html)
Хороший способ:'
def current_datetime(request):
now = datetime.datetime.now()
context = {'current_date': now}
return render_to_response(‘current_datetime.html', context)
'
Наследование шаблонов
Базовый шаблона — основа вашей страницы, которую позже будут
заполнять дочерние шаблоны
«base.html»:
<body>
<h1>My helpful timestamp site</h1>
{% block content %}{% endblock %}
{% block footer %}
<p>Thanks for visiting my site.</p>
{% endblock %}
</body>
'
Дочерние шаблоны могут заполнять содержимое блоков
«some.html»:
'
{% extends "base.html" %}
'
{% block content %}
<p>It is now {{ current_date }}.</p>
{% endblock %}
Админка
model.py:'
class Publisher(models.Model):
name = models.CharField(max_length=30)
address = models.CharField(max_length=50)
city = models.CharField(max_length=60)
country = models.CharField(max_length=50)
website = models.URLField()
'
admin.py:'
admin.site.register(Publisher)
Демонстрация
Литература
• djbook.ru
• Уэсли Чан, Пол Биссекс, Джеффри Форсье
«Django. Разработка веб-приложений на Python»
• moscowdjango.ru

More Related Content

Viewers also liked

Roteiro - Viagem EUA 2013
Roteiro - Viagem EUA 2013Roteiro - Viagem EUA 2013
Roteiro - Viagem EUA 2013AgriPoint
 
Электронные учебные материалы: содержание и возможные сценарии использования
Электронные учебные материалы: содержание и возможные сценарии использованияЭлектронные учебные материалы: содержание и возможные сценарии использования
Электронные учебные материалы: содержание и возможные сценарии использованияDmitry Bezrukov
 
Fluke Ti110 Thermal Imager for Industrial and Commercial Applications
Fluke Ti110 Thermal Imager for Industrial and Commercial ApplicationsFluke Ti110 Thermal Imager for Industrial and Commercial Applications
Fluke Ti110 Thermal Imager for Industrial and Commercial ApplicationsMichelStuck
 
Lorena Jimenez
Lorena JimenezLorena Jimenez
Lorena Jimenezacrosinus
 
Harren Media Brasil - Harren LinkinAd
Harren Media Brasil - Harren LinkinAdHarren Media Brasil - Harren LinkinAd
Harren Media Brasil - Harren LinkinAdramoelrodrigues
 
Islam terdiri tiga tingkat
Islam terdiri tiga tingkatIslam terdiri tiga tingkat
Islam terdiri tiga tingkatHelmon Chan
 
REQUISITOS BÁSICOS PARA ENTIDADES PLEITEAREM CONVÊNIO COM A SEDS
REQUISITOS BÁSICOS PARA ENTIDADES PLEITEAREM CONVÊNIO COM A SEDS REQUISITOS BÁSICOS PARA ENTIDADES PLEITEAREM CONVÊNIO COM A SEDS
REQUISITOS BÁSICOS PARA ENTIDADES PLEITEAREM CONVÊNIO COM A SEDS Deputado Roberto Massafera - PSDB
 
Técnicas de mercadeo dentro de la fundación CISV Colombia
Técnicas de mercadeo dentro de la fundación CISV ColombiaTécnicas de mercadeo dentro de la fundación CISV Colombia
Técnicas de mercadeo dentro de la fundación CISV Colombiaacrosinus
 
Objetivos de investigación
Objetivos de investigaciónObjetivos de investigación
Objetivos de investigacióncarmen cardenas
 
El bloque academico en un eva
El bloque academico en un evaEl bloque academico en un eva
El bloque academico en un evaVictor Becerra
 

Viewers also liked (16)

Roteiro - Viagem EUA 2013
Roteiro - Viagem EUA 2013Roteiro - Viagem EUA 2013
Roteiro - Viagem EUA 2013
 
4.º bol. novos recursos bibl.
4.º bol. novos recursos bibl.4.º bol. novos recursos bibl.
4.º bol. novos recursos bibl.
 
Ana marg.bot.promoçãoleiturapais b
Ana marg.bot.promoçãoleiturapais bAna marg.bot.promoçãoleiturapais b
Ana marg.bot.promoçãoleiturapais b
 
Presentación personal
Presentación personalPresentación personal
Presentación personal
 
Autor do mês camarneiro
Autor do mês   camarneiroAutor do mês   camarneiro
Autor do mês camarneiro
 
Электронные учебные материалы: содержание и возможные сценарии использования
Электронные учебные материалы: содержание и возможные сценарии использованияЭлектронные учебные материалы: содержание и возможные сценарии использования
Электронные учебные материалы: содержание и возможные сценарии использования
 
Fluke Ti110 Thermal Imager for Industrial and Commercial Applications
Fluke Ti110 Thermal Imager for Industrial and Commercial ApplicationsFluke Ti110 Thermal Imager for Industrial and Commercial Applications
Fluke Ti110 Thermal Imager for Industrial and Commercial Applications
 
Lorena Jimenez
Lorena JimenezLorena Jimenez
Lorena Jimenez
 
Harren Media Brasil - Harren LinkinAd
Harren Media Brasil - Harren LinkinAdHarren Media Brasil - Harren LinkinAd
Harren Media Brasil - Harren LinkinAd
 
Islam terdiri tiga tingkat
Islam terdiri tiga tingkatIslam terdiri tiga tingkat
Islam terdiri tiga tingkat
 
REQUISITOS BÁSICOS PARA ENTIDADES PLEITEAREM CONVÊNIO COM A SEDS
REQUISITOS BÁSICOS PARA ENTIDADES PLEITEAREM CONVÊNIO COM A SEDS REQUISITOS BÁSICOS PARA ENTIDADES PLEITEAREM CONVÊNIO COM A SEDS
REQUISITOS BÁSICOS PARA ENTIDADES PLEITEAREM CONVÊNIO COM A SEDS
 
Técnicas de mercadeo dentro de la fundación CISV Colombia
Técnicas de mercadeo dentro de la fundación CISV ColombiaTécnicas de mercadeo dentro de la fundación CISV Colombia
Técnicas de mercadeo dentro de la fundación CISV Colombia
 
Objetivos de investigación
Objetivos de investigaciónObjetivos de investigación
Objetivos de investigación
 
El bloque academico en un eva
El bloque academico en un evaEl bloque academico en un eva
El bloque academico en un eva
 
Anochecer
AnochecerAnochecer
Anochecer
 
Chapter 1 Story
Chapter 1 StoryChapter 1 Story
Chapter 1 Story
 

Similar to Django

C# Web. Занятие 16.
C# Web. Занятие 16.C# Web. Занятие 16.
C# Web. Занятие 16.Igor Shkulipa
 
03 templates kachalova
03 templates kachalova03 templates kachalova
03 templates kachalovaSokolov Artyom
 
Django шахрай. версия 4
Django шахрай. версия 4Django шахрай. версия 4
Django шахрай. версия 4smikler
 
kranonitS20 Сергей Бурма. Django - легко, быстро, эффективно
kranonitS20 Сергей Бурма. Django - легко, быстро, эффективноkranonitS20 Сергей Бурма. Django - легко, быстро, эффективно
kranonitS20 Сергей Бурма. Django - легко, быстро, эффективноKrivoy Rog IT Community
 
09 - Web-технологии. MVC фреймворки
09 - Web-технологии. MVC фреймворки09 - Web-технологии. MVC фреймворки
09 - Web-технологии. MVC фреймворкиRoman Brovko
 
Web осень 2013 лекция 7
Web осень 2013 лекция 7Web осень 2013 лекция 7
Web осень 2013 лекция 7Technopark
 
Евгений Ильин. Drupal + Solr: Яндекс.Маркет своими руками
Евгений Ильин. Drupal + Solr: Яндекс.Маркет своими рукамиЕвгений Ильин. Drupal + Solr: Яндекс.Маркет своими руками
Евгений Ильин. Drupal + Solr: Яндекс.Маркет своими рукамиDrupalSib
 
Валерий Чугреев, ИСЭРТ РАН — Архитектура MVC в контексте web-разработки — про...
Валерий Чугреев, ИСЭРТ РАН — Архитектура MVC в контексте web-разработки — про...Валерий Чугреев, ИСЭРТ РАН — Архитектура MVC в контексте web-разработки — про...
Валерий Чугреев, ИСЭРТ РАН — Архитектура MVC в контексте web-разработки — про...Dev_Party
 
Templates kachalova 2014_new
Templates kachalova 2014_newTemplates kachalova 2014_new
Templates kachalova 2014_newInSales
 
Стандарты и соглашения в сложных ООП-приложениях
Стандарты и соглашения в сложных ООП-приложенияхСтандарты и соглашения в сложных ООП-приложениях
Стандарты и соглашения в сложных ООП-приложенияхMagecom Ukraine
 
Регрессионное тестирование верстки
Регрессионное тестирование версткиРегрессионное тестирование верстки
Регрессионное тестирование версткиTalks&Works
 
Вёрстка WordPress тем - WP Kharkiv Meetup #1
Вёрстка WordPress тем - WP Kharkiv Meetup #1Вёрстка WordPress тем - WP Kharkiv Meetup #1
Вёрстка WordPress тем - WP Kharkiv Meetup #1dima_kuzovlev
 
C# Web. Занятие 01.
C# Web. Занятие 01.C# Web. Занятие 01.
C# Web. Занятие 01.Igor Shkulipa
 
Мировые информационные ресурсы. Лекция 4
Мировые информационные ресурсы. Лекция 4Мировые информационные ресурсы. Лекция 4
Мировые информационные ресурсы. Лекция 4Dmitriy Krukov
 

Similar to Django (20)

C# Web. Занятие 16.
C# Web. Занятие 16.C# Web. Занятие 16.
C# Web. Занятие 16.
 
03 templates kachalova
03 templates kachalova03 templates kachalova
03 templates kachalova
 
Django шахрай. версия 4
Django шахрай. версия 4Django шахрай. версия 4
Django шахрай. версия 4
 
kranonitS20 Сергей Бурма. Django - легко, быстро, эффективно
kranonitS20 Сергей Бурма. Django - легко, быстро, эффективноkranonitS20 Сергей Бурма. Django - легко, быстро, эффективно
kranonitS20 Сергей Бурма. Django - легко, быстро, эффективно
 
09 - Web-технологии. MVC фреймворки
09 - Web-технологии. MVC фреймворки09 - Web-технологии. MVC фреймворки
09 - Web-технологии. MVC фреймворки
 
Web осень 2013 лекция 7
Web осень 2013 лекция 7Web осень 2013 лекция 7
Web осень 2013 лекция 7
 
Евгений Ильин. Drupal + Solr: Яндекс.Маркет своими руками
Евгений Ильин. Drupal + Solr: Яндекс.Маркет своими рукамиЕвгений Ильин. Drupal + Solr: Яндекс.Маркет своими руками
Евгений Ильин. Drupal + Solr: Яндекс.Маркет своими руками
 
Что нового в Django 1.4
Что нового в Django 1.4Что нового в Django 1.4
Что нового в Django 1.4
 
Валерий Чугреев, ИСЭРТ РАН — Архитектура MVC в контексте web-разработки — про...
Валерий Чугреев, ИСЭРТ РАН — Архитектура MVC в контексте web-разработки — про...Валерий Чугреев, ИСЭРТ РАН — Архитектура MVC в контексте web-разработки — про...
Валерий Чугреев, ИСЭРТ РАН — Архитектура MVC в контексте web-разработки — про...
 
Lection1
Lection1Lection1
Lection1
 
Templates kachalova 2014_new
Templates kachalova 2014_newTemplates kachalova 2014_new
Templates kachalova 2014_new
 
Стандарты и соглашения в сложных ООП-приложениях
Стандарты и соглашения в сложных ООП-приложенияхСтандарты и соглашения в сложных ООП-приложениях
Стандарты и соглашения в сложных ООП-приложениях
 
Введение в Django
Введение в DjangoВведение в Django
Введение в Django
 
Регрессионное тестирование верстки
Регрессионное тестирование версткиРегрессионное тестирование верстки
Регрессионное тестирование верстки
 
TT
TTTT
TT
 
Template Toolkit – зло!?
Template Toolkit – зло!?Template Toolkit – зло!?
Template Toolkit – зло!?
 
Вёрстка WordPress тем - WP Kharkiv Meetup #1
Вёрстка WordPress тем - WP Kharkiv Meetup #1Вёрстка WordPress тем - WP Kharkiv Meetup #1
Вёрстка WordPress тем - WP Kharkiv Meetup #1
 
C# Web. Занятие 01.
C# Web. Занятие 01.C# Web. Занятие 01.
C# Web. Занятие 01.
 
Мировые информационные ресурсы. Лекция 4
Мировые информационные ресурсы. Лекция 4Мировые информационные ресурсы. Лекция 4
Мировые информационные ресурсы. Лекция 4
 
Лекция #7. Django ORM
Лекция #7. Django ORMЛекция #7. Django ORM
Лекция #7. Django ORM
 

More from Sergey Maslennikov

Программно-информационное обеспечение научных конференций в сети интернет
Программно-информационное обеспечение научных конференций в сети интернетПрограммно-информационное обеспечение научных конференций в сети интернет
Программно-информационное обеспечение научных конференций в сети интернетSergey Maslennikov
 
полуавтоматическая генерации словарей для лексикографов
полуавтоматическая генерации словарей для лексикографовполуавтоматическая генерации словарей для лексикографов
полуавтоматическая генерации словарей для лексикографовSergey Maslennikov
 
Система автоматизированного извлечения контактной информации об организации ...
Система автоматизированного извлечения контактной информации об организации ...Система автоматизированного извлечения контактной информации об организации ...
Система автоматизированного извлечения контактной информации об организации ...Sergey Maslennikov
 
Программное средство сравнительного исследования человеко- машинных интерфей...
Программное средство сравнительного исследования человеко- машинных интерфей...Программное средство сравнительного исследования человеко- машинных интерфей...
Программное средство сравнительного исследования человеко- машинных интерфей...Sergey Maslennikov
 
Применение компьютерного моделирования для решения задач параметрической ид...
Применение компьютерного  моделирования  для решения задач параметрической ид...Применение компьютерного  моделирования  для решения задач параметрической ид...
Применение компьютерного моделирования для решения задач параметрической ид...Sergey Maslennikov
 
ВЕБ-ПОРТАЛ ДЛЯ ПРОВЕДЕНИЯ КОНТРОЛЬНЫХ 
И ПРАКТИЧЕСКИХ РАБОТ ПО ПРОГРАММИРОВАН...
ВЕБ-ПОРТАЛ ДЛЯ ПРОВЕДЕНИЯ КОНТРОЛЬНЫХ 
И ПРАКТИЧЕСКИХ РАБОТ ПО ПРОГРАММИРОВАН...ВЕБ-ПОРТАЛ ДЛЯ ПРОВЕДЕНИЯ КОНТРОЛЬНЫХ 
И ПРАКТИЧЕСКИХ РАБОТ ПО ПРОГРАММИРОВАН...
ВЕБ-ПОРТАЛ ДЛЯ ПРОВЕДЕНИЯ КОНТРОЛЬНЫХ 
И ПРАКТИЧЕСКИХ РАБОТ ПО ПРОГРАММИРОВАН...Sergey Maslennikov
 
Оптимизация методов внутрикадрового предсказания формата H.265(HEVC) для пото...
Оптимизация методов внутрикадрового предсказания формата H.265(HEVC) для пото...Оптимизация методов внутрикадрового предсказания формата H.265(HEVC) для пото...
Оптимизация методов внутрикадрового предсказания формата H.265(HEVC) для пото...Sergey Maslennikov
 
Система автоматического мониторинга физической подготовки учащихся на основ...
Система автоматического мониторинга  физической подготовки учащихся  на основ...Система автоматического мониторинга  физической подготовки учащихся  на основ...
Система автоматического мониторинга физической подготовки учащихся на основ...Sergey Maslennikov
 
Применение алгоритмов гарантированной двухсторонней оценки решения в задачах ...
Применение алгоритмов гарантированной двухсторонней оценки решения в задачах ...Применение алгоритмов гарантированной двухсторонней оценки решения в задачах ...
Применение алгоритмов гарантированной двухсторонней оценки решения в задачах ...Sergey Maslennikov
 
3D-моделирование поведения роя частиц с использованием подходов многоагентных...
3D-моделирование поведения роя частиц с использованием подходов многоагентных...3D-моделирование поведения роя частиц с использованием подходов многоагентных...
3D-моделирование поведения роя частиц с использованием подходов многоагентных...Sergey Maslennikov
 
Программно-информационное обеспечение построения орбитальной группировки косм...
Программно-информационное обеспечение построения орбитальной группировки косм...Программно-информационное обеспечение построения орбитальной группировки косм...
Программно-информационное обеспечение построения орбитальной группировки косм...Sergey Maslennikov
 
ВЕБ-СЕРВИС ДЛЯ РАСПРЕДЕЛЕННОЙ СИСТЕМЫ АВТОМАТИЗИРОВАННОГО ТЕСТИРОВАНИЯ С ФУНК...
ВЕБ-СЕРВИС ДЛЯ РАСПРЕДЕЛЕННОЙ СИСТЕМЫ АВТОМАТИЗИРОВАННОГО ТЕСТИРОВАНИЯ С ФУНК...ВЕБ-СЕРВИС ДЛЯ РАСПРЕДЕЛЕННОЙ СИСТЕМЫ АВТОМАТИЗИРОВАННОГО ТЕСТИРОВАНИЯ С ФУНК...
ВЕБ-СЕРВИС ДЛЯ РАСПРЕДЕЛЕННОЙ СИСТЕМЫ АВТОМАТИЗИРОВАННОГО ТЕСТИРОВАНИЯ С ФУНК...Sergey Maslennikov
 
Программное и информационное обеспечение шахматной системы
Программное и информационное обеспечение шахматной системыПрограммное и информационное обеспечение шахматной системы
Программное и информационное обеспечение шахматной системыSergey Maslennikov
 
Платформа для проведения интернет конференций
Платформа для проведения интернет конференцийПлатформа для проведения интернет конференций
Платформа для проведения интернет конференцийSergey Maslennikov
 

More from Sergey Maslennikov (16)

Программно-информационное обеспечение научных конференций в сети интернет
Программно-информационное обеспечение научных конференций в сети интернетПрограммно-информационное обеспечение научных конференций в сети интернет
Программно-информационное обеспечение научных конференций в сети интернет
 
полуавтоматическая генерации словарей для лексикографов
полуавтоматическая генерации словарей для лексикографовполуавтоматическая генерации словарей для лексикографов
полуавтоматическая генерации словарей для лексикографов
 
Система автоматизированного извлечения контактной информации об организации ...
Система автоматизированного извлечения контактной информации об организации ...Система автоматизированного извлечения контактной информации об организации ...
Система автоматизированного извлечения контактной информации об организации ...
 
Программное средство сравнительного исследования человеко- машинных интерфей...
Программное средство сравнительного исследования человеко- машинных интерфей...Программное средство сравнительного исследования человеко- машинных интерфей...
Программное средство сравнительного исследования человеко- машинных интерфей...
 
Prezentatsia
PrezentatsiaPrezentatsia
Prezentatsia
 
Применение компьютерного моделирования для решения задач параметрической ид...
Применение компьютерного  моделирования  для решения задач параметрической ид...Применение компьютерного  моделирования  для решения задач параметрической ид...
Применение компьютерного моделирования для решения задач параметрической ид...
 
ВЕБ-ПОРТАЛ ДЛЯ ПРОВЕДЕНИЯ КОНТРОЛЬНЫХ 
И ПРАКТИЧЕСКИХ РАБОТ ПО ПРОГРАММИРОВАН...
ВЕБ-ПОРТАЛ ДЛЯ ПРОВЕДЕНИЯ КОНТРОЛЬНЫХ 
И ПРАКТИЧЕСКИХ РАБОТ ПО ПРОГРАММИРОВАН...ВЕБ-ПОРТАЛ ДЛЯ ПРОВЕДЕНИЯ КОНТРОЛЬНЫХ 
И ПРАКТИЧЕСКИХ РАБОТ ПО ПРОГРАММИРОВАН...
ВЕБ-ПОРТАЛ ДЛЯ ПРОВЕДЕНИЯ КОНТРОЛЬНЫХ 
И ПРАКТИЧЕСКИХ РАБОТ ПО ПРОГРАММИРОВАН...
 
Оптимизация методов внутрикадрового предсказания формата H.265(HEVC) для пото...
Оптимизация методов внутрикадрового предсказания формата H.265(HEVC) для пото...Оптимизация методов внутрикадрового предсказания формата H.265(HEVC) для пото...
Оптимизация методов внутрикадрового предсказания формата H.265(HEVC) для пото...
 
Система автоматического мониторинга физической подготовки учащихся на основ...
Система автоматического мониторинга  физической подготовки учащихся  на основ...Система автоматического мониторинга  физической подготовки учащихся  на основ...
Система автоматического мониторинга физической подготовки учащихся на основ...
 
Применение алгоритмов гарантированной двухсторонней оценки решения в задачах ...
Применение алгоритмов гарантированной двухсторонней оценки решения в задачах ...Применение алгоритмов гарантированной двухсторонней оценки решения в задачах ...
Применение алгоритмов гарантированной двухсторонней оценки решения в задачах ...
 
3D-моделирование поведения роя частиц с использованием подходов многоагентных...
3D-моделирование поведения роя частиц с использованием подходов многоагентных...3D-моделирование поведения роя частиц с использованием подходов многоагентных...
3D-моделирование поведения роя частиц с использованием подходов многоагентных...
 
Программно-информационное обеспечение построения орбитальной группировки косм...
Программно-информационное обеспечение построения орбитальной группировки косм...Программно-информационное обеспечение построения орбитальной группировки косм...
Программно-информационное обеспечение построения орбитальной группировки косм...
 
ВЕБ-СЕРВИС ДЛЯ РАСПРЕДЕЛЕННОЙ СИСТЕМЫ АВТОМАТИЗИРОВАННОГО ТЕСТИРОВАНИЯ С ФУНК...
ВЕБ-СЕРВИС ДЛЯ РАСПРЕДЕЛЕННОЙ СИСТЕМЫ АВТОМАТИЗИРОВАННОГО ТЕСТИРОВАНИЯ С ФУНК...ВЕБ-СЕРВИС ДЛЯ РАСПРЕДЕЛЕННОЙ СИСТЕМЫ АВТОМАТИЗИРОВАННОГО ТЕСТИРОВАНИЯ С ФУНК...
ВЕБ-СЕРВИС ДЛЯ РАСПРЕДЕЛЕННОЙ СИСТЕМЫ АВТОМАТИЗИРОВАННОГО ТЕСТИРОВАНИЯ С ФУНК...
 
Программное и информационное обеспечение шахматной системы
Программное и информационное обеспечение шахматной системыПрограммное и информационное обеспечение шахматной системы
Программное и информационное обеспечение шахматной системы
 
Maslennikov
MaslennikovMaslennikov
Maslennikov
 
Платформа для проведения интернет конференций
Платформа для проведения интернет конференцийПлатформа для проведения интернет конференций
Платформа для проведения интернет конференций
 

Django

  • 3. Возможности • подключаемые приложения • ORM • диспетчер URL на основе регулярных выражений • расширяемая система шаблонов с тегами и наследованием • авторизация и аутентификация • библиотека для работы с формами (наследование, построение форм по существующей модели БД) • встроенный интерфейс администратора
  • 4. Подключаемые приложения • Проекты состоят из приложений • Приложения могут использоваться в разных проектах • Приложениями можно делиться :)
  • 5. Model Модель в Django — это описание данных, которые хранятся в БД, выполненное в виде кода на языке Python.
  • 6. Model Модель:' ' class Publisher(models.Model): name = models.CharField(max_length=30) address = models.CharField(max_length=50) city = models.CharField(max_length=60) country = models.CharField(max_length=50) website = models.URLField() Автоматически сгенерированная таблица:' ' CREATE TABLE "books_publisher" ( "id" serial NOT NULL PRIMARY KEY, "name" varchar(30) NOT NULL, "address" varchar(50) NOT NULL, "city" varchar(60) NOT NULL, "country" varchar(50) NOT NULL, "website" varchar(200) NOT NULL );
  • 7. ORM Простые запросы:' • Publisher.objects.all() • Publisher.objects.filter(name=‘Apress’) - возвращает список • Publisher.objects.get(name=‘Apress') - возвращает один элемент • Publisher.objects.order_by(«address») Составные запросы:' • Publisher.objects.filter(country="U.S.A.").order_by("-name")
  • 8. Представления и привязка к URL Представление:' from django.http import HttpResponse def hello(request): return HttpResponse("Hello, world") URL:' from django.conf.urls.defaults import * from mysite.views import hello urlpatterns = patterns('', ('^hello/$', hello), )
  • 9. Как Django обрабатывает запрос • Приходит запрос к /hello/. • Django просматривает файл привязки в поисках первого шаблона, который совпадёт с запрошенным URL. • Если такой шаблон найден, Django вызывает ассоциированную с ним функцию представления. • Функция представления возвращает HttpResponse. • Django преобразовывает HttpResponse в соответствующий HTTP отклик, который реализует страницу.
  • 10. Динамические URL Представление:' def hours_ahead(request, offset): dt = datetime.datetime.now() + datetime.timedelta(hours=offset) html = "<html><body>In %s hour(s), it will be %s.</body></html>" % (offset, dt) return HttpResponse(html) URL:' urlpatterns = patterns('', (r'^time/plus/d+/$', hours_ahead), )
  • 11. Шаблоны • Вы не можете создать переменную или вызвать функцию с параметрами • Любой текст взятый в скобки {{ }} является переменной ({{ name }}) • Любой текст взятый в фигурные скобки и проценты является тегом ({% for item in list %}) • Конструкция {{ name | lower }} является фильтром
  • 12. Теги • if/else {% if today_is_weekend %} <p>Welcome to the weekend!</p> {% endif %} ' • for <ul> {% for item in tem_list %} <li>{{ item.name }}</li> {% endfor %} </ul> ' • forloop/forloop0 {% for item in list %} <p>{{ forloop.counter }}: {{ item }}</p> {% endfor %}
  • 13. Фильтры Шаблонные фильтры представляют собой простой способ изменения значения переменных перед их отображением {{ name|lower }} Использование множественного фильтра {{ my_list|first|upper }} Некоторые фильтры принимают аргументы {{ text|truncatewords:"30" }}
  • 14. Взаимодействие шаблонов и представлений Плохой способ:' def current_datetime(request): now = datetime.datetime.now() fp = open('/home/djangouser/templates/mytemplate.html') t = Template(fp.read()) fp.close() html = t.render(Context({'current_date': now})) return HttpResponse(html) Хороший способ:' def current_datetime(request): now = datetime.datetime.now() context = {'current_date': now} return render_to_response(‘current_datetime.html', context) '
  • 15. Наследование шаблонов Базовый шаблона — основа вашей страницы, которую позже будут заполнять дочерние шаблоны «base.html»: <body> <h1>My helpful timestamp site</h1> {% block content %}{% endblock %} {% block footer %} <p>Thanks for visiting my site.</p> {% endblock %} </body> ' Дочерние шаблоны могут заполнять содержимое блоков «some.html»: ' {% extends "base.html" %} ' {% block content %} <p>It is now {{ current_date }}.</p> {% endblock %}
  • 16. Админка model.py:' class Publisher(models.Model): name = models.CharField(max_length=30) address = models.CharField(max_length=50) city = models.CharField(max_length=60) country = models.CharField(max_length=50) website = models.URLField() ' admin.py:' admin.site.register(Publisher)
  • 18. Литература • djbook.ru • Уэсли Чан, Пол Биссекс, Джеффри Форсье «Django. Разработка веб-приложений на Python» • moscowdjango.ru