SlideShare ist ein Scribd-Unternehmen logo
1 von 29
Downloaden Sie, um offline zu lesen
фреймворк, который позволяет
экономить время на веб-разработку
   и превращает разработку вэб-
    приложений в удовольствие

         ИСАЕВ ИГОРЬ
1 Что такое  
   django? 

2 Устройство и 
 возможности 
Django 
Django (Джанго) 
— свободный фреймворк для веб­
приложений на языке Python.

Последняя версия
1.3 (23 марта 2011)

Лицензия
BSD

Разработчики
●
   Адриан Головатый
●
   Саймон Виллисон
●
   Джекоб Каплан­Мосс




                                 ­ 1 ­
Кто использует?




      ­ 2 ­
История
2003: Kansas, USA 
2005: BSD & v0.90 
2008: v1.0 
2011: v1.3 




                 ­ 3 ­
Основные принципы

  don't repeat yourself
●


  слабая зависимость и гибкость
●


  быстрая разработка
●




                   ­ 4 ­
Документация

  Официальная документация 
●


  Множество книг
●


  Сообщество
●


  softwaremaniacs.org
●




                 ­ 5 ­
Python

  Читаемость и лаконичность 
●


  Мультипарадигменный язык
●


  Стандартная библиотека
●




                ­ 6 ­
Python




TIOBE Programming Community Index

               ­ 7 ­
Производительность
      Django

  С  производительностью у
     django все хорошо




             ­ 8 ­
Устройство 

Model
Template
View
URL
      ­ 9 ­
Модель 
       Уровень доступа к данным
ORM django:
# Создание таблицы
class Post(models.Model):
   author = models.ForeignKey(Author) 
   title = models.CharField(max_length=200)
   slug = models.SlugField(max_length=200)
   body = models.TextField() 
   pub_date = models.DateTimeField(auto_now_add=True) 
   is_active = models.BooleanField(default=True)




                          ­ 10 ­
Модель 
         Уровень доступа к данным
ORM django:
# Получение данных
posts = Post.objects.all()[:5]

posts = Post.objects.filter(post_type=‘rant’)

posts = Post.objects.filter(author__name=‘Rob’)

posts = Post.objects.filter(author__name=‘Rob’).order_by(‘type’)

post = Post.objects.get(id=24)




                                 ­ 11 ­
Шаблон 
   Уровень презентационной логики
{% extends "base.html" %} {# загрузить родительский шаблон #}

{% block content %} {# заполнить содержимое блока #}

<table>

   {% for item in items %}
       <tr class="{% cycle odd,even %}">
       <td>{{ item.name }}</td> 
       <td>{{ item.price }}</td> 
       </tr> 
   {% endfor %}

</table>

{% endblock %}
                              ­ 12 ­
Представление 
           Уровень бизнес логики
def posts_by_type(request, type):
   # Показать сообщения конкретного типа

  posts = Post.objects.filter(type=type)
  return render_to_response( ‘postsbytype.html’, {‘posts’: posts})


def new_post(request):
   # Добавить новое сообщение

  if request.method == ‘POST’:
       form = PostForm(request.POST)
       if form.is_valid(): 
            form.save() 
  else:
       form = PostForm() 
  return render_to_response( ‘mytemplate.html’, {‘form’: form})
Диспетчер URL
urlpatters = patterns(‘’,
    (’^my/favorite/color/$’, ‘blog.views.my_fav_color’),

    (‘^post/new/$’, ‘blog.views.new_post’),

    (‘^posts/(d{4})/$’, ‘blog.views.year_archive’), 
    (‘^posts/(d{4})/(d{2})/$’, ‘blog.views.month_archive’),
    (‘^posts/(?P<slug>[a­z­]*)/$’, ‘blog.views.show_post’), 

)




                                ­ 14 ­
Возможности 
●
   Встроенный веб­сервер
●
   Встроенный интерфейс администратора
●
   Библиотека создания форм
●
   Система кэширования
●
   Интернационализация 
●
   Подключаемая архитектура приложений
●
   Авторизация и аутентификация




                    ­ 15 ­
Встроенный
веб­сервер

python manage.py runserver




           ­ 16 ­
Админка 




   ­ 17 ­
Админка 




   ­ 18 ­
Библиотека 
        создания форм
# Создание формы
class ContactForm(forms.Form):
   subject = forms.CharField(max_length=100)
   message = forms.CharField()
   sender = forms.EmailField()
   cc_myself = forms.BooleanField(required=False)

Django сделает за нас:
●
   Нарисует форму целиком или отдельное поле
●
   Произведет проверку введенных данных 




                             ­ 19 ­
Библиотека 
       создания форм
# Создание формы из модели
PostForm(forms.ModelForm): 
   class Meta: 
   model = Post

Django сделает за нас:
●
   Нарисует форму на основе модели
●
   Произведет проверку введенных данных 
●
   Сохранит полученные данные в таблицу




                          ­ 20 ­
Система
     кэширования 
Что можно кэшировать?
●
   весь сайт
●
   конкретную страницу
●
   участок шаблона
Типы хранилищ:
●
   memcached
●
   база данных
●
   файловая система
●
   локальная память
                 ­ 21 ­
i18n

1 Вставить переводимые строки
2 Выполнить перевод




               ­ 22 ­
Подключаемая 
 архитектура 
 приложений 

Не надо изобретать велосипед!




             ­ 23 ­
Авторизация и 
аутентификация 


      ­ 24 ­
Недостатки 

1 Логотип




            ­ 25 ­
ВОПРОСЫ:
СПАСИБО
   ЗА
ВНИМАНИЕ

Weitere ähnliche Inhalte

Was ist angesagt?

09 - Web-технологии. MVC фреймворки
09 - Web-технологии. MVC фреймворки09 - Web-технологии. MVC фреймворки
09 - Web-технологии. MVC фреймворкиRoman Brovko
 
создание пользовательских типов в Dexterity
создание пользовательских типов в Dexterityсоздание пользовательских типов в Dexterity
создание пользовательских типов в DexteritySergey Greger
 
Сергей Пузанков — XPath
Сергей Пузанков — XPathСергей Пузанков — XPath
Сергей Пузанков — XPathYandex
 
«Организация Frontend-разработки на крупном проекте» — Дмитрий Кузнецов
«Организация Frontend-разработки на крупном проекте» — Дмитрий Кузнецов«Организация Frontend-разработки на крупном проекте» — Дмитрий Кузнецов
«Организация Frontend-разработки на крупном проекте» — Дмитрий Кузнецов2ГИС Технологии
 
построение внутренней ссылочной структуры сайта на Drupal 7 (seo). Костин ...
построение внутренней ссылочной структуры сайта на Drupal 7 (seo). Костин ...построение внутренней ссылочной структуры сайта на Drupal 7 (seo). Костин ...
построение внутренней ссылочной структуры сайта на Drupal 7 (seo). Костин ...PVasili
 
Looking into WordPress Core, WordCamp Russia 2015
Looking into WordPress Core, WordCamp Russia 2015Looking into WordPress Core, WordCamp Russia 2015
Looking into WordPress Core, WordCamp Russia 2015Sergey Biryukov
 
М. Боднарчук Современное функциональное тестирование с Codeception
М. Боднарчук Современное функциональное тестирование с CodeceptionМ. Боднарчук Современное функциональное тестирование с Codeception
М. Боднарчук Современное функциональное тестирование с CodeceptionAlbina Tiupa
 
Михаил Боднарчук Современное функциональное тестирование с Codeception
Михаил Боднарчук Современное функциональное тестирование с CodeceptionМихаил Боднарчук Современное функциональное тестирование с Codeception
Михаил Боднарчук Современное функциональное тестирование с CodeceptionAlbina Tiupa
 
Knockoutjs на примере 2ГИС-Онлайн
Knockoutjs на примере 2ГИС-ОнлайнKnockoutjs на примере 2ГИС-Онлайн
Knockoutjs на примере 2ГИС-Онлайн2ГИС Технологии
 
Web весна 2013 лекция 8
Web весна 2013 лекция 8Web весна 2013 лекция 8
Web весна 2013 лекция 8Technopark
 
Basis.js - Production Ready SPA Framework
Basis.js - Production Ready SPA FrameworkBasis.js - Production Ready SPA Framework
Basis.js - Production Ready SPA FrameworkMoscowJS
 
"Basis.js - Production Ready SPA Framework" Сергей Мелюков (Avito)
"Basis.js - Production Ready SPA Framework" Сергей Мелюков (Avito)"Basis.js - Production Ready SPA Framework" Сергей Мелюков (Avito)
"Basis.js - Production Ready SPA Framework" Сергей Мелюков (Avito)AvitoTech
 
Svyatoslav Login "360 View of XSS"
Svyatoslav Login "360 View of XSS"Svyatoslav Login "360 View of XSS"
Svyatoslav Login "360 View of XSS"Fwdays
 
Олег Мохов: Модель Отображения. Браузеры
Олег Мохов: Модель Отображения. БраузерыОлег Мохов: Модель Отображения. Браузеры
Олег Мохов: Модель Отображения. БраузерыYandex
 
лабораторная работа №3 dfd & idef0
лабораторная работа №3 dfd & idef0лабораторная работа №3 dfd & idef0
лабораторная работа №3 dfd & idef0Natasha Lysakova
 
Selenium: приемы работы
Selenium: приемы работыSelenium: приемы работы
Selenium: приемы работыPaul Stashevsky
 

Was ist angesagt? (20)

Основы MongoDB + NodeJS
Основы MongoDB + NodeJSОсновы MongoDB + NodeJS
Основы MongoDB + NodeJS
 
Основы JS
Основы JSОсновы JS
Основы JS
 
09 - Web-технологии. MVC фреймворки
09 - Web-технологии. MVC фреймворки09 - Web-технологии. MVC фреймворки
09 - Web-технологии. MVC фреймворки
 
Kranonit s16 (python). dmitry furzenko
Kranonit s16 (python). dmitry furzenkoKranonit s16 (python). dmitry furzenko
Kranonit s16 (python). dmitry furzenko
 
создание пользовательских типов в Dexterity
создание пользовательских типов в Dexterityсоздание пользовательских типов в Dexterity
создание пользовательских типов в Dexterity
 
Сергей Пузанков — XPath
Сергей Пузанков — XPathСергей Пузанков — XPath
Сергей Пузанков — XPath
 
«Организация Frontend-разработки на крупном проекте» — Дмитрий Кузнецов
«Организация Frontend-разработки на крупном проекте» — Дмитрий Кузнецов«Организация Frontend-разработки на крупном проекте» — Дмитрий Кузнецов
«Организация Frontend-разработки на крупном проекте» — Дмитрий Кузнецов
 
построение внутренней ссылочной структуры сайта на Drupal 7 (seo). Костин ...
построение внутренней ссылочной структуры сайта на Drupal 7 (seo). Костин ...построение внутренней ссылочной структуры сайта на Drupal 7 (seo). Костин ...
построение внутренней ссылочной структуры сайта на Drupal 7 (seo). Костин ...
 
Looking into WordPress Core, WordCamp Russia 2015
Looking into WordPress Core, WordCamp Russia 2015Looking into WordPress Core, WordCamp Russia 2015
Looking into WordPress Core, WordCamp Russia 2015
 
М. Боднарчук Современное функциональное тестирование с Codeception
М. Боднарчук Современное функциональное тестирование с CodeceptionМ. Боднарчук Современное функциональное тестирование с Codeception
М. Боднарчук Современное функциональное тестирование с Codeception
 
Михаил Боднарчук Современное функциональное тестирование с Codeception
Михаил Боднарчук Современное функциональное тестирование с CodeceptionМихаил Боднарчук Современное функциональное тестирование с Codeception
Михаил Боднарчук Современное функциональное тестирование с Codeception
 
Knockoutjs на примере 2ГИС-Онлайн
Knockoutjs на примере 2ГИС-ОнлайнKnockoutjs на примере 2ГИС-Онлайн
Knockoutjs на примере 2ГИС-Онлайн
 
Web весна 2013 лекция 8
Web весна 2013 лекция 8Web весна 2013 лекция 8
Web весна 2013 лекция 8
 
Basis.js - Production Ready Framework
Basis.js - Production Ready FrameworkBasis.js - Production Ready Framework
Basis.js - Production Ready Framework
 
Basis.js - Production Ready SPA Framework
Basis.js - Production Ready SPA FrameworkBasis.js - Production Ready SPA Framework
Basis.js - Production Ready SPA Framework
 
"Basis.js - Production Ready SPA Framework" Сергей Мелюков (Avito)
"Basis.js - Production Ready SPA Framework" Сергей Мелюков (Avito)"Basis.js - Production Ready SPA Framework" Сергей Мелюков (Avito)
"Basis.js - Production Ready SPA Framework" Сергей Мелюков (Avito)
 
Svyatoslav Login "360 View of XSS"
Svyatoslav Login "360 View of XSS"Svyatoslav Login "360 View of XSS"
Svyatoslav Login "360 View of XSS"
 
Олег Мохов: Модель Отображения. Браузеры
Олег Мохов: Модель Отображения. БраузерыОлег Мохов: Модель Отображения. Браузеры
Олег Мохов: Модель Отображения. Браузеры
 
лабораторная работа №3 dfd & idef0
лабораторная работа №3 dfd & idef0лабораторная работа №3 dfd & idef0
лабораторная работа №3 dfd & idef0
 
Selenium: приемы работы
Selenium: приемы работыSelenium: приемы работы
Selenium: приемы работы
 

Ähnlich wie django cheBit'11

Web осень 2013 лекция 7
Web осень 2013 лекция 7Web осень 2013 лекция 7
Web осень 2013 лекция 7Technopark
 
Web осень 2013 лекция 6
Web осень 2013 лекция 6Web осень 2013 лекция 6
Web осень 2013 лекция 6Technopark
 
Web осень 2013 лекция 8
Web осень 2013 лекция 8Web осень 2013 лекция 8
Web осень 2013 лекция 8Technopark
 
kranonitS20 Сергей Бурма. Django - легко, быстро, эффективно
kranonitS20 Сергей Бурма. Django - легко, быстро, эффективноkranonitS20 Сергей Бурма. Django - легко, быстро, эффективно
kranonitS20 Сергей Бурма. Django - легко, быстро, эффективноKrivoy Rog IT Community
 
Виталий Каторгин, Wamba
Виталий Каторгин, WambaВиталий Каторгин, Wamba
Виталий Каторгин, WambaOntico
 
Django шахрай. версия 4
Django шахрай. версия 4Django шахрай. версия 4
Django шахрай. версия 4smikler
 
Web весна 2013 лекция 4
Web весна 2013 лекция 4Web весна 2013 лекция 4
Web весна 2013 лекция 4Technopark
 
Как мы делаем модули PHP в Badoo – Антон Довгаль
Как мы делаем модули PHP в Badoo – Антон ДовгальКак мы делаем модули PHP в Badoo – Антон Довгаль
Как мы делаем модули PHP в Badoo – Антон ДовгальBadoo Development
 
Rich UI on Dojo Toolkit and Zend Framework
Rich UI on Dojo Toolkit and Zend FrameworkRich UI on Dojo Toolkit and Zend Framework
Rich UI on Dojo Toolkit and Zend FrameworkGeorgy Turevich
 
Лекция #6. Введение в Django web-framework
Лекция #6. Введение в Django web-frameworkЛекция #6. Введение в Django web-framework
Лекция #6. Введение в Django web-frameworkЯковенко Кирилл
 
View как чистая функция от состояния базы данных - Илья Беда, bro.agency
View как чистая функция от состояния базы данных  - Илья Беда, bro.agencyView как чистая функция от состояния базы данных  - Илья Беда, bro.agency
View как чистая функция от состояния базы данных - Илья Беда, bro.agencyit-people
 
Web осень 2012 лекция 4
Web осень 2012 лекция 4Web осень 2012 лекция 4
Web осень 2012 лекция 4Technopark
 
Writing Open Source Library
Writing Open Source LibraryWriting Open Source Library
Writing Open Source LibraryAndrew Svetlov
 
Успешный Open Source - Андрей Светлов, PyCon RU 2014
Успешный Open Source - Андрей Светлов, PyCon RU 2014Успешный Open Source - Андрей Светлов, PyCon RU 2014
Успешный Open Source - Андрей Светлов, PyCon RU 2014it-people
 
Опыт разработки сложных клиент-серверных приложений на TypeScript и ASP.NET
Опыт разработки сложных клиент-серверных приложений на TypeScript и ASP.NETОпыт разработки сложных клиент-серверных приложений на TypeScript и ASP.NET
Опыт разработки сложных клиент-серверных приложений на TypeScript и ASP.NETGoSharp
 

Ähnlich wie django cheBit'11 (20)

Web осень 2013 лекция 7
Web осень 2013 лекция 7Web осень 2013 лекция 7
Web осень 2013 лекция 7
 
Web осень 2013 лекция 6
Web осень 2013 лекция 6Web осень 2013 лекция 6
Web осень 2013 лекция 6
 
Web осень 2013 лекция 8
Web осень 2013 лекция 8Web осень 2013 лекция 8
Web осень 2013 лекция 8
 
kranonitS20 Сергей Бурма. Django - легко, быстро, эффективно
kranonitS20 Сергей Бурма. Django - легко, быстро, эффективноkranonitS20 Сергей Бурма. Django - легко, быстро, эффективно
kranonitS20 Сергей Бурма. Django - легко, быстро, эффективно
 
Виталий Каторгин, Wamba
Виталий Каторгин, WambaВиталий Каторгин, Wamba
Виталий Каторгин, Wamba
 
Zend Framework и Doctrine
Zend Framework и DoctrineZend Framework и Doctrine
Zend Framework и Doctrine
 
Django шахрай. версия 4
Django шахрай. версия 4Django шахрай. версия 4
Django шахрай. версия 4
 
Web весна 2013 лекция 4
Web весна 2013 лекция 4Web весна 2013 лекция 4
Web весна 2013 лекция 4
 
Как мы делаем модули PHP в Badoo – Антон Довгаль
Как мы делаем модули PHP в Badoo – Антон ДовгальКак мы делаем модули PHP в Badoo – Антон Довгаль
Как мы делаем модули PHP в Badoo – Антон Довгаль
 
Django
DjangoDjango
Django
 
бегун
бегунбегун
бегун
 
Rich UI on Dojo Toolkit and Zend Framework
Rich UI on Dojo Toolkit and Zend FrameworkRich UI on Dojo Toolkit and Zend Framework
Rich UI on Dojo Toolkit and Zend Framework
 
Лекция #6. Введение в Django web-framework
Лекция #6. Введение в Django web-frameworkЛекция #6. Введение в Django web-framework
Лекция #6. Введение в Django web-framework
 
View как чистая функция от состояния базы данных - Илья Беда, bro.agency
View как чистая функция от состояния базы данных  - Илья Беда, bro.agencyView как чистая функция от состояния базы данных  - Илья Беда, bro.agency
View как чистая функция от состояния базы данных - Илья Беда, bro.agency
 
Js fuckworks
Js fuckworksJs fuckworks
Js fuckworks
 
Web осень 2012 лекция 4
Web осень 2012 лекция 4Web осень 2012 лекция 4
Web осень 2012 лекция 4
 
Writing Open Source Library
Writing Open Source LibraryWriting Open Source Library
Writing Open Source Library
 
Успешный Open Source - Андрей Светлов, PyCon RU 2014
Успешный Open Source - Андрей Светлов, PyCon RU 2014Успешный Open Source - Андрей Светлов, PyCon RU 2014
Успешный Open Source - Андрей Светлов, PyCon RU 2014
 
Опыт разработки сложных клиент-серверных приложений на TypeScript и ASP.NET
Опыт разработки сложных клиент-серверных приложений на TypeScript и ASP.NETОпыт разработки сложных клиент-серверных приложений на TypeScript и ASP.NET
Опыт разработки сложных клиент-серверных приложений на TypeScript и ASP.NET
 
бегун
бегунбегун
бегун
 

django cheBit'11