Введение в web-разработку

Содержание

Слайд 2

Фреймворки Фреймворк – программная платформа, определяющая структуру разрабатываемого программного решения. Фреймворк

Фреймворки

Фреймворк – программная платформа, определяющая структуру разрабатываемого программного решения.
Фреймворк облегчает

разработку компонентов программного решения.
Фреймворк влияет на выбор того или иного паттерна (шаблона) проектирования, например, использование MVC схемы разделения данных.
Слайд 3

Фреймворки Фреймворк – программная платформа, определяющая структуру разрабатываемого программного решения. Фреймворк

Фреймворки

Фреймворк – программная платформа, определяющая структуру разрабатываемого программного решения.
Фреймворк облегчает

разработку компонентов программного решения.
Фреймворк влияет на выбор того или иного архитектурного паттерна (шаблона) проектирования, например, использование MVC схемы разделения данных.
Слайд 4

Фреймворки Python Django Pyramid TurboGears Flask Tornado

Фреймворки Python

Django
Pyramid
TurboGears
Flask
Tornado

Слайд 5

Фреймворки Python. Pyramid Особенности Инструментарий для работы со статичными ассетами. Генерация

Фреймворки Python. Pyramid

Особенности
Инструментарий для работы со статичными ассетами.
Генерация URL
Предикаты
Пример использования:

Substance-D, Charte.ca
Слайд 6

Фреймворки Python. Pyramid ПЛЮСЫ Гибкость Работа с Ajax-запросами Поддержка SQLAlchemy МИНУСЫ

Фреймворки Python. Pyramid

ПЛЮСЫ
Гибкость
Работа с Ajax-запросами
Поддержка SQLAlchemy
МИНУСЫ
Сложность подготовки к работе
Излишняя нагруженность для

простых приложений
Слайд 7

Фреймворки Python. TurboGears Особенности Интеграция с библиотеками JS (MochiKit) для работы

Фреймворки Python. TurboGears

Особенности
Интеграция с библиотеками JS (MochiKit) для работы
Одновременная поддержка

нескольких БД
поддерживает SQLAlchemy, Genshi, WebOb и Repoze
Пример использования: Apache Allura от SourceForge
Слайд 8

Фреймворки Python. TurboGears ПЛЮСЫ Гибкость и расширяемость Open Source проект МИНУСЫ Сложность работы

Фреймворки Python. TurboGears

ПЛЮСЫ
Гибкость и расширяемость
Open Source проект
МИНУСЫ
Сложность работы

Слайд 9

Фреймворки Python. Flask Особенности Встроенный дебаггер Шаблоны Jinja2 Безопасность работы с

Фреймворки Python. Flask

Особенности
Встроенный дебаггер
Шаблоны Jinja2
Безопасность работы с куки на клиенте
Поддержка

юнит-тестов
Пример использования: Netflix
Слайд 10

Фреймворки Python. Flask ПЛЮСЫ Быстрое прототипирование Множество возможностей за счет более

Фреймворки Python. Flask

ПЛЮСЫ
Быстрое прототипирование
Множество возможностей за счет более низкоуровневой работы
МИНУСЫ
Сложность

работы
Высокий порог вхождения
Слайд 11

Фреймворки Python. Tornado Особенности Основная «фишка» - асинхронность работы Работа в

Фреймворки Python. Tornado

Особенности
Основная «фишка» - асинхронность работы
Работа в реальном времени
Возможности

аутентификации
Может выдерживать проблемы 10 000 соединений
Пример использования: Uploadcare
Слайд 12

Фреймворки Python. Tornado ПЛЮСЫ Поддержка множественных пользовательских соединений Работа в реальном

Фреймворки Python. Tornado

ПЛЮСЫ
Поддержка множественных пользовательских соединений
Работа в реальном времени
Поддержка переводов и

локализации
МИНУСЫ
Сложность работы
Высокий порог вхождения
Слайд 13

Фреймворки Python. Django Особенности Контроль версий для БД (миграции). Маршрутизация URL.

Фреймворки Python. Django

Особенности
Контроль версий для БД (миграции).
Маршрутизация URL.
Поддержка веб-серверов, аутентификации,

интернационализации
Пример использования: Instagram, Spotify
Слайд 14

Фреймворки Python. Django ПЛЮСЫ Множество библиотек Сообщество и документация Масштабируемость МИНУСЫ

Фреймворки Python. Django

ПЛЮСЫ
Множество библиотек
Сообщество и документация
Масштабируемость
МИНУСЫ
Проблемы при работе с WebSockets
Готовые библиотеки

могут снижать гибкость
Слайд 15

Фреймворки Python. Django. MVC/MTV Model (Модель) View (Представление) Controller (Контроллер) Model (модель) Template (шаблон) View (представление)

Фреймворки Python. Django. MVC/MTV

Model (Модель)
View (Представление)
Controller (Контроллер)
Model (модель)
Template (шаблон)
View (представление)

Слайд 16

Фреймворки Python. Django Выполнив команду >> django-admin.py startproject first Был создан

Фреймворки Python. Django

Выполнив команду
>> django-admin.py startproject first
Был создан проект first,

где:
manage.py – скрип управления проектом (добавление новых приложений, сборка файлов и пр.);
__init__.py необходим для определения директории/пакета;
settings.py – глобальные настройки проекта (пути, БД, подключения и пр.);
urls.py – файл привязок url (по какому адресу вызывается тот или иной скрипт);
wsgi.py – WSGI-приложение для работы с web-сервером
Слайд 17

Фреймворки Python. Django Выполнив команду >> ./manage.py startapp main Было создано

Фреймворки Python. Django

Выполнив команду
>> ./manage.py startapp main
Было создано приложение main,

где:
__init__.py необходим для определения директории/пакета;
models.py – модели приложения
tests.py – шаблон для тестов;
views.py – представления приложения
Слайд 18

Фреймворки Python. Django Порядок работы Браузер запрашивает URL, сервер передает запрос

Фреймворки Python. Django

Порядок работы
Браузер запрашивает URL, сервер передает запрос в Django
Django

формирует объект HttpRequest
Запускаются методы process_request Middleware-классов*
Поиск соответствия в файле uels.py
Запускаются методы process_request Middleware-классов
Передается Request с параметрами (при их определении в файле urls.py) в найденное представление
Выполняется функция представления, возвращается объект HttpResponse
Запускаются методы process_request Middleware-классов
Django возвращает ответ на web-сервер, а затем – в браузер
Слайд 19

Фреймворки Python. Django Middleware-классы Выполняют работу по модификации запросов и ответов

Фреймворки Python. Django

Middleware-классы
Выполняют работу по модификации запросов и ответов
Например, django.contrib.auth

добавляет к каждому запросу поле с именем пользователя, который осуществил данный запрос