Flask. Пример Hello

Содержание

Слайд 2

Flask

Flask является микрофреймворком для создания вебсайтов на языке Python
Flask имеет много

Flask Flask является микрофреймворком для создания вебсайтов на языке Python Flask имеет
параметров конфигурации с разумными значениями по умолчанию, и мало предварительных соглашений. По соглашению, шаблоны и статические файлы хранятся в поддиректориях внутри дерева исходных текстов на Python, с названиями templates и static соответственно. Хотя это можно и поменять, обычно этого делать не стоит, особенно в самом начале работы.
Основная причина почему Flask называется «микрофреймворком» — это идея сохранить ядро простым, но расширяемым
В нем нет абстрактного уровня базы данных, нет валидации форм или всего такого, что уже есть в других библиотеках к которым вы можете обращаться

Слайд 3

Однако Flask поддерживает расширения, которые могут добавить необходимую функциональность и имплеминтирует их

Однако Flask поддерживает расширения, которые могут добавить необходимую функциональность и имплеминтирует их
так, как будто они уже были встроены изначально. В настоящее время уже есть расширения: формы валидации, поддержка закачки файлов, различные технологии аутентификации и многие другие.

Слайд 4

Пример Hello

Пример Hello

Слайд 5

Общедоступный сервер

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

Общедоступный сервер Если вы запустите сервер, вы заметите, что он доступен только
вашего компьютера, а не с любого другого компьютера в сети. Это значение выставлено по умолчанию, потому что в режиме отладки пользователь приложения может выполнить произвольный код на вашем компьютере.
Если вы доверяете пользователям в вашей сети, вы можете сделать сервер общедоступным, просто изменив вызов run(), который должен выглядеть следующим образом:

Слайд 6

Режим отладки

Метод run() хорош для начала разработки на локальном сервере. Но это

Режим отладки Метод run() хорош для начала разработки на локальном сервере. Но
потребует ручного перезапуска сервера после каждого изменения в коде
Если включить Debug Mode, сервер будет сам перегружаться после каждого изменения в коде. Еще вы получите полезный отладчик, на тот случай если что-то пойдет не так.
Есть два способа включить режим отладки:

Слайд 8

Маршрутизация

Роутеры строятся с помощью декоратора route()

Маршрутизация Роутеры строятся с помощью декоратора route()

Слайд 9

Динамические роутеры

Для добавления переменной части в URL можно пометить эти разделы, как

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

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

Слайд 11

Генерация URL

Flask может генерировать URL. Для создания URL, используйте функцию
Она принимает

Генерация URL Flask может генерировать URL. Для создания URL, используйте функцию Она
имя функции в качестве первого аргумента, а также ряд ключевых аргументов, каждый из которых соответствует переменной части URL правила
Части неизвестной переменной добавляется к URL в качестве параметров запроса

Слайд 13

Метод test_request_context() говорит Flask, как нужно обрабатывать запрос, даже если мы взаимодействуем

Метод test_request_context() говорит Flask, как нужно обрабатывать запрос, даже если мы взаимодействуем через шел Python
через шел Python

Слайд 14

HTTP методы

По умолчанию маршрут реагирует только на ответы GET-запросов, но это можно

HTTP методы По умолчанию маршрут реагирует только на ответы GET-запросов, но это
изменить путем предоставления методов, используя аргументы к декоратору route()

Слайд 16

Если присутствует GET, тогда HEAD будет добавлен автоматически. Вам не нужно об

Если присутствует GET, тогда HEAD будет добавлен автоматически. Вам не нужно об
этом заботиться. Также будьте уверены, что HEAD поддерживает HTTP RFC зависимости, так что вы можете полностью игнорировать HTTP спецификации.

Слайд 17

Статические файлы

Динамическим веб-приложениям также требуются статические файлы. Обычно это css и javascript

Статические файлы Динамическим веб-приложениям также требуются статические файлы. Обычно это css и
файлы.
Просто создайте папку с названием static в вашем пакете или рядом с модулем и она будет доступна в /static по применению.
Для генерации адресов для статических файлов, используется специальное имя 'static':

Слайд 19

Файл будет доступен в файловой системе по пути static/style.css

Файл будет доступен в файловой системе по пути static/style.css

Слайд 20

Рендеринг шаблонов

Для рендеринга Flask используем Jinja2
Чтобы создать шаблон, можно использовать метод

Рендеринг шаблонов Для рендеринга Flask используем Jinja2 Чтобы создать шаблон, можно использовать
render_template(). Все, что вам нужно сделать, — это указать имя шаблона и переменные, которые вы хотите передать в шаблоны как ключевые аргументы

Слайд 23

WatchDog

Расширение для мониторинга за изменениями файловой системы

WatchDog Расширение для мониторинга за изменениями файловой системы

Слайд 24

Предположим, что нас интересуют изменения по некоему пути /path/to/smth, связанные с созданием,

Предположим, что нас интересуют изменения по некоему пути /path/to/smth, связанные с созданием,
удалением и переименованием файлов и директорий.

Слайд 25

Подключаем

Подключаем

Слайд 26

Класс Observer выбирается в /observers/__init__.py исходя из возможностей вашей ОС, так что

Класс Observer выбирается в /observers/__init__.py исходя из возможностей вашей ОС, так что
нет необходимости самостоятельно решать, что же выбрать

Слайд 27

Класс FileSystemEventHandler является базовым классом обработчика событий изменения.

Класс FileSystemEventHandler является базовым классом обработчика событий изменения.

Слайд 29

Observer является относительно далеким потомком threading.Thread, соотвественно после вызова start() мы получаем

Observer является относительно далеким потомком threading.Thread, соотвественно после вызова start() мы получаем
фоновый поток, следящий за изменениями

Слайд 31

На выходе

На выходе

Слайд 32

Pygame

Набор модулей языка программирования Python, предназначенный для написания компьютерных игр и

Pygame Набор модулей языка программирования Python, предназначенный для написания компьютерных игр и
мультимедиа-приложений. Pygame базируется на мультимедийной библиотеке SDL.

Слайд 33

Что такое SDL?

Simple DirectMedia Layer (SDL) - это свободная кроссплатформенная мультимедийная библиотека,

Что такое SDL? Simple DirectMedia Layer (SDL) - это свободная кроссплатформенная мультимедийная
реализующая единый программный интерфейс к графической подсистеме, звуковым устройствам и средствам ввода для широкого спектра платформ.
Официально поддерживаются операционные системы: Linux, Microsoft Windows, Mac OS X, iOS и Android.
SDL API доступны для языков: C, C++, C#, VB.NET, D, Ada, Vala, Eiffel, Haskell, Erlang, Euphoria, Java, Lisp, Lua, ML, Pascal, Perl, PHP, Pike, PureBasic, Python и Ruby.

Слайд 34

Пример

Пример

Слайд 35

Больше примеров

https://github.com/Mekire/pygame-samples
http://pygame.org/tags/example
http://programarcadegames.com/?chapter=example_code

Больше примеров https://github.com/Mekire/pygame-samples http://pygame.org/tags/example http://programarcadegames.com/?chapter=example_code

Слайд 36

OpenCV

Библиотека алгоритмов компьютерного зрения, обработки изображений и численных алгоритмов общего назначения

OpenCV Библиотека алгоритмов компьютерного зрения, обработки изображений и численных алгоритмов общего назначения
с открытым кодом. Реализована на C/C++, также разрабатывается для Python, Java, Ruby, Matlab, Lua и других языков. Может свободно использоваться в академических и коммерческих целях — распространяется в условиях лицензии BSD.

Слайд 37

Применение

Для утверждения общего стандартного интерфейса компьютерного зрения для приложений в этой области.

Применение Для утверждения общего стандартного интерфейса компьютерного зрения для приложений в этой
Для способствования росту числа таких приложений и создания новых моделей использования PC.
Сделать платформы Intel привлекательными для разработчиков таких приложений за счёт дополнительного ускорения OpenCV с помощью Intel® Performance Libraries (Сейчас включают IPP (низкоуровневые библиотеки для обработки сигналов, изображений, а также медиа-кодеки) и MKL (специальная версия LAPACK и FFTPack))
OpenCV способна автоматически обнаруживать присутствие IPP и MKL и использовать их для ускорения обработки

Слайд 38

Поддерживаемые платформы

Поддерживаемые платформы

Слайд 39

Основные модули

Основные модули

Слайд 40

PIL (Pillow)


Библиотека Python предназначена для работы с растровой графикой.
Разработка

PIL (Pillow) Библиотека Python предназначена для работы с растровой графикой. Разработка библиотеки
библиотеки прекращена (последняя правка датируется 2011 годом).Однако, проект под названием Pillow, являющийся форком PIL, развивается и включает, в том числе, поддержку Python 3.x
Этот форк был принят в качестве замены оригинальной библиотеки и включён в некоторые дистрибутивы Linux, включая Debian и Ubuntu (с 13.04)

Слайд 41

Возможности:
поддержка бинарных, полутоновых, индексированных, полноцветных и CMYK изображений;
поддержка форматов BMP, EPS, GIF,

Возможности: поддержка бинарных, полутоновых, индексированных, полноцветных и CMYK изображений; поддержка форматов BMP,
JPEG, PDF, PNG, PNM, TIFF и некоторых других на чтение и запись;
поддержка множества форматов (ICO, MPEG, PCX, PSD, WMF и др.) только для чтения;
конвертирование изображений из одного формата в другой;
редактирование изображений (использование различных фильтров, масштабирование, рисование, матричные операции и т. д.);

Слайд 42

Создание изображения

Создание изображения

Слайд 43

Вывод формата типа и размера изображения

Вывод формата типа и размера изображения

Слайд 44

Конвертация изображения

Конвертация изображения

Слайд 45

Peewee

Лёгкая, гибкая и очень быстрая ORM на Python
Особенности:
Маленькая,красивый ORM
Написана на Python,с

Peewee Лёгкая, гибкая и очень быстрая ORM на Python Особенности: Маленькая,красивый ORM
поддержкой Python 2.6+, Python 3.2+
Поддерживает Sqlite,Mysql,PostgreSql
Тонна расширений,доступных в Playhouse
http://docs.peewee-orm.com/en/latest/peewee/playhouse.html

Слайд 46

Пример

Пример

Слайд 47

Коннект к базе

Коннект к базе

Слайд 48

Добавляем запись

Добавляем запись

Слайд 49

Типы полей

Типы полей

Слайд 50

Requests

Requests — библиотека Python, которая элегантно и просто выполняет HTTP-запросы. Теперь не

Requests Requests — библиотека Python, которая элегантно и просто выполняет HTTP-запросы. Теперь
нужно осваивать urllib2 с излишне сложными программными интерфейсами.

Слайд 51

HTTP-запрос с авторизацией

HTTP-запрос с авторизацией

Слайд 52

На Urllib тоже самое

На Urllib тоже самое

Слайд 53

Библиотека requests позволяет отправлять HTTP-запросы HEAD, GET, POST, PUT, PATCH и DELETE

Библиотека requests позволяет отправлять HTTP-запросы HEAD, GET, POST, PUT, PATCH и DELETE

Слайд 54

SH

Является полноправной заменой подпроцессов для Python 2.6 - 3.4, что позволяет вызывать

SH Является полноправной заменой подпроцессов для Python 2.6 - 3.4, что позволяет
любую программу так, как будто это была функция
https://github.com/amoffat/sh

Слайд 55

Пример

Пример