33
Django: инструкция по применению PyCon Ukraine 22 октября 2011 Колодяжный Иван 1 из 21

Django: инструкция по применению

Embed Size (px)

Citation preview

Page 1: Django: инструкция по применению

Django: инструкция по применению

PyCon Ukraine22 октября 2011

Колодяжный Иван

1 из 21

Page 2: Django: инструкция по применению

Существует 2 способа использовать Django

PyCon Ukraine 2011 2 из 22

Page 3: Django: инструкция по применению

Алгоритм работы с Django

Пункт #1. Берем DjangoПункт #2. Берем напильник

PyCon Ukraine 2011 3 из 22

Page 4: Django: инструкция по применению

Алгоритм работы с Django

Пункт #1. Берем DjangoПункт #2. Берем напильник

Пункт #n. Пользуемcя и радуемся жизни

PyCon Ukraine 2011 3 из 22

Page 5: Django: инструкция по применению

Алгоритм работы с Django (ver.2)

Пункт #1. Берем DjangoПункт #2. Берем напильник…

PyCon Ukraine 2011 4 из 22

Page 6: Django: инструкция по применению

Алгоритм работы с Django (ver.2)

Пункт #1. Берем DjangoПункт #2. Берем напильник…Пункт #n. Выбрасываем Django.

PyCon Ukraine 2011 4 из 22

Page 7: Django: инструкция по применению

Алгоритм работы с Django (ver.2)

Пункт #1. Берем DjangoПункт #2. Берем напильник…Пункт #n. Выбрасываем Django.…

Пункт #m-1. Находим подходящее решениеПункт #m. Пользуемcя и радуемся жизни

PyCon Ukraine 2011 4 из 22

Page 8: Django: инструкция по применению

Алгоритм работы с Django (ver.2.1)

Пункт #1. Помним о DjangoПункт #2. Понимаем что он нам не подходитПункт #3. Находим подходящее решениеПункт #3. Пользуемcя и радуемся жизни

PyCon Ukraine 2011 5 из 22

Page 9: Django: инструкция по применению

Когда нам подходит Django• Нужен опыт с Django• Нужно быстро сделать сайт с админкой• Есть хорошее готовое приложение/модуль

для Django• Стандартного ORM вполне достаточно• Какие-то из модулей Django очень хорошо

подходят для текущей задачи• Нужно сделать что-то очень быстро и нет

опыта с другими фреймворками.PyCon Ukraine 2011 6 из 22

Page 10: Django: инструкция по применению

Когда нам подходит Django

• Создание CMS• Создать приложение на основе готового

PyCon Ukraine 2011 7 из 22

Page 11: Django: инструкция по применению

Создание CMS• Admin site• Authentication• Comments• E-mail• Flat pages• Pagination• Redirects

• Site map• Static files• Syndication feeds• Validators

PyCon Ukraine 2011 8 из 22

Page 12: Django: инструкция по применению

Когда нам не подходит Django

• Нет взаимодействия с базой данных• Отсутствует presentation layer• Замена большей части стандартных

компонентов• Использование NoSQL, GAE

PyCon Ukraine 2011 9 из 22

Page 13: Django: инструкция по применению

Веб приложение без доступа к БД

PyCon Ukraine 2011 10 из 22

Page 14: Django: инструкция по применению

Веб приложение без доступа к БД

• Удаляем models.py• Реализовываем доступ к данным (REST,

чтение из файлов и т.д)• Забываем про ModelForms

PyCon Ukraine 2011 10 из 22

Page 15: Django: инструкция по применению

Веб приложение без доступа к БД

• Стандартная аутентификация/авторизация не подходит

• Вслед за этим пишем свою админку

PyCon Ukraine 2011 11 из 22

Page 16: Django: инструкция по применению

Веб приложение без доступа к БД

• Стандартная аутентификация/авторизация не подходит

• Вслед за этим пишем свою админку

PyCon Ukraine 2011 11 из 22

Page 17: Django: инструкция по применению

Веб приложение без доступа к БД

• Выбрасываем django• Берем небольшой веб-фреймворк

(например, flask)• Пишем нужную нам логику • Не думаем о том, что что-либо в

используемом фреймворке нам нельзя использовать

PyCon Ukraine 2011 12 из 22

Page 18: Django: инструкция по применению

Веб приложение без доступа к БД

• Нет ненужно когда• Размер приложение, как правило,

становится меньше

PyCon Ukraine 2011 13 из 22

Page 19: Django: инструкция по применению

Веб приложение без доступа к БД

• Нет ненужно когда• Размер приложение, как правило,

становится меньше

PyCon Ukraine 2011 13 из 22

Page 20: Django: инструкция по применению

Отсутствует GUI (REST-сервис, COMET-сервер)

• Шаблоны не нужны• «Тяжелые» запросы плохо подходят для

COMET• Многопоточность «из коробки» -

использование threading• Non-blocking I/O?

PyCon Ukraine 2011 14 из 22

Page 21: Django: инструкция по применению

Отсутствует GUI (REST-сервис, COMET-сервер)

• Использование инструментов, предназначенных для таких задач

PyCon Ukraine 2011 15 из 22

Page 22: Django: инструкция по применению

Отсутствует GUI (REST-сервис, COMET-сервер)

• Использование инструментов, предназначенных для таких задач

PyCon Ukraine 2011 15 из 22

Page 23: Django: инструкция по применению

Замена большей части стандартных компонентов

• Выбросить стандартный ORM

• Использовать другой template engine

• Попытаться это все интегрировать и родную инфраструктуры (form views, admin site)

PyCon Ukraine 2011 16 из 22

Page 24: Django: инструкция по применению

Замена большей части стандартных компонентов

• Выбросить стандартный ORM

• Использовать другой template engine

• Попытаться это все интегрировать и родную инфраструктуры (form views, admin site)

PyCon Ukraine 2011 16 из 22

Page 25: Django: инструкция по применению

• Принцип Паретто 20/80– 80% времени переписывается стандартный

функционал

Замена большей части стандартных компонентов

PyCon Ukraine 2011 17 из 22

Page 26: Django: инструкция по применению

Замена большей части стандартных компонентов

• Принцип Паретто 20/80– 80% времени переписывается стандартный

функционал

PyCon Ukraine 2011 17 из 22

Page 27: Django: инструкция по применению

Замена большей части стандартных компонентов

• Принцип Паретто 20/80– 80% времени переписывается стандартный

функционал

– Еще 80% времени - исправление багов

PyCon Ukraine 2011 17 из 22

Page 28: Django: инструкция по применению

Замена большей части стандартных компонентов

• Принцип Паретто 20/80– 80% пишем сами– 20% есть в Django

PyCon Ukraine 2011 18 из 22

Page 29: Django: инструкция по применению

Замена большей части стандартных компонентов

• Принцип Паретто 20/80– 80% пишем сами– 20% есть в Django

• Зачем нам Django?

PyCon Ukraine 2011 18 из 22

Page 30: Django: инструкция по применению

Использование NoSQL• Используем стандартный API для ORM• Используем django nonrel• Используем почти всю django инфраструктуру но:

- помним про join- готовимся делать патчи для django nonrel

PyCon Ukraine 2011 19 из 22

Page 31: Django: инструкция по применению

Использование NoSQL• Используем модуль для работы с нужной NoSQL БД• Отказываемся от всей Django инфраструктуры• Задумываемся о целесообразности использования Django

PyCon Ukraine 2011 20 из 22

Page 32: Django: инструкция по применению

PyCon Ukraine 2011 21 из 22

Page 33: Django: инструкция по применению

Спасибо

Skype: e0ne-userBlog: http://blog.e0ne.info/

PyCon Ukraine 2011 22 из 22

E-mail: [email protected]: @e0ne