The Flask Mega-Tutorial, Part I: Hello, World! / The Flask Mega-Tutorial, Часть 1: Привет, Мир!: The Flask Mega-Tutorial, Part I: Hello, World!
| Английский оригинал | Перевод на русский | |
|---|---|---|
Сожалеем, но текст оригинала доступен только зарегистрированным пользователям. |
The Flask Mega-Tutorial, Часть 1: Привет, Мир! wiygn 06.09.13 в 22:32 |
|
|
Это первая статья в серии, где я буду документировать мой опыт написания веб-приложения на Python, используя микрофреймворк Flask. wiygn 06.09.13 в 22:33 |
||
|
Здесь список всех статей в серии: wiygn 06.09.13 в 22:33 |
||
|
Часть 1: Привет, Мир! (эта статья) wiygn 06.09.13 в 22:39 |
||
|
Моя предыстория wiygn 06.09.13 в 22:39 |
||
|
Я разработчик ПО с двузначным числом лет опыта разработки комплексных приложений на нескольких языках. Впервые я познакомился с Python для создания привязок к C++ библиотеке на работе. wiygn 06.09.13 в 22:42 |
||
|
Вдобавок к Python, я писал веб-приложения на PHP, Ruby, Smalltalk и, верите вы или нет, еще на С++. Из всего этого, я нахожу комбинацию Python/Flask самой гибкой. wiygn 06.09.13 в 22:45 |
||
|
Приложение, которое я собираюсь разрабатывать как часть этого руководства, является сервером микроблогов, который я решил назвать микроблог. Довольно креативно, я знаю. wiygn 06.09.13 в 22:47 |
||
|
Во время нашего прогресса я затрону следующие темы: wiygn 06.09.13 в 22:47 |
||
|
Управление пользователями, включая управление входами, сессиями, ролями пользователя, профилями и пользовательскими аватарами wiygn 06.09.13 в 22:54 |
||
|
Как вы видите, я берусь за все это весьма значительно. Надеюсь, что это приложение, когда я его закончу, станет чем-то вроде шаблона для написания других веб-приложений. wiygn 06.09.13 в 22:59 |
||
|
Если ваш компьютер запускает Python 2.6/2.7, то все, вероятно, пойдет хорошо. Приложение из руководства должно нормально работать на Windows, OS X и Linux. wiygn 06.09.13 в 23:00 |
||
|
Это руководство подразумевает, что вы знакомы с окном терминала (командной консолью в случае Windows) и вы знаете основные команды для работы с файлами вашей ОС. Если это не так, то перед тем как продолжить, я рекомендую вам ознакомиться с тем, как создавать директории, копировать файлы и т.д. используя консоль. wiygn 06.09.13 в 23:03 |
||
|
Наконец, вы должны уметь писать код на Python. Знакомство с модулями и пакетами этого языка также не помешает. wiygn 06.09.13 в 23:05 |
||
|
Начнем! wiygn 06.09.13 в 23:05 |
||
|
Если у вас еще не установлен Python 2.7, то берем его отсюда. wiygn 06.09.13 в 23:06 |
||
|
Теперь нам нужно установить Flask и несколько расширений, которые мы будем использовать. Я предпочитаю создание виртуального окружения, где все это будет установлено таким образом, что ваша основная установка Python затронута не будет. В качестве бонуса, вам не нужен будет root доступ для установки таким способом. wiygn 06.09.13 в 23:08 |
||
|
Итак, открываем терминал, выбираем место, где будет ваше приложение, и создаем новую папку, в которой оно будет содержаться. Назовем эту папку microblog. wiygn 06.09.13 в 23:10 |
||
|
Далее скачиваем virtualenv.py и кладем его внутрь новой папки. wiygn 06.09.13 в 23:10 |
||
|
Чтобы создать новое окужение введите следующую команду: wiygn 06.09.13 в 23:10 |
||
|
python virtualenv.py flask wiygn 06.09.13 в 23:11 |
||
|
Эта команда создаст полноценное окружение Python внутри папки flask wiygn 06.09.13 в 23:11 |
||
|
Виртуальные окружения могут быть активированы и деактивированы по желанию. Активированное окружение добавляет путь своей папки bin в path системы, поэтому например, когда вы вызываете интерпретатор python, то получаете версию текущего окружения, а не системную. Лично я никогда не любил это свойство, поэтому никогда не активировал ни одно из моих окружения, вместо этого я просто вызывал тот интерпретатор, который хотел, печатая его путь. wiygn 06.09.13 в 23:22 |
||
|
Если вы пользователь Linux, OS x или Cygwin, установите flask и расширения вводя следующие команды одну за одной: wiygn 06.09.13 в 23:23 |
||
|
flask/bin/pip install flask==0.9 wiygn 06.09.13 в 23:23 |
||
|
Если же вы пользователь Windows, то команды слегка отличаются: wiygn 06.09.13 в 23:23 |
||
|
flask\Scripts\pip install flask==0.9 wiygn 06.09.13 в 23:24 |
||
|
Эти команды скачают и установят все пакеты, которые мы будем использовать в нашем приложении. wiygn 07.09.13 в 02:46 |
||
|
Учтите, что мы собираемся использовать Flask 0.9, а не последнюю версию. Flask 0.10 не было довольно долго и некоторые расширения не обновлены для нормальной работы с этой версией. wiygn 07.09.13 в 02:49 |
||
|
Windows пользователей ждет еще один шаг. Если вы наблюдательны, то заметили, что в списке команд для Windows отсутствует flask-mail. Это расширение не устанавливается чисто на Windows, поэтому мы пойдем обходным путем: wiygn 07.09.13 в 02:52 |
||
|
flask\Scripts\pip install --no-deps lamson chardet flask-mail wiygn 07.09.13 в 02:52 |
||
|
Я не буду вдаваться в подробности, поэтому если вы хотите узнать больше, прочтите документацию к flask-mail. wiygn 07.09.13 в 02:53 |
||
|
Если установка всех пакетов прошла успешно, вы можете удалить virtualenv.py, с этих пор файл нам больше не понадобится. wiygn 07.09.13 в 02:53 |
||
|
Теперь у вас есть подпапка flask, в вашей папке microblog, содержащая интерпретатор Python и фреймворк Flask с расширениями, которые мы будем использовать в этом приложении. Теперь пришло время написать наше первое веб-приложение! wiygn 07.09.13 в 02:56 |
||
|
После того как вы переместились папку microblog, давайте создадим основную структуру папок для нашего приложения: wiygn 07.09.13 в 02:57 |
||
|
mkdir app wiygn 07.09.13 в 02:57 |
||
|
В папку app мы поместим само наше приложение. Подпапка static нужна для хранения статики, такой как картинки, javascript файлы и таблицы стилей. Подпапка templates, очевидно, предназначена для хранения наших шаблонов. wiygn 07.09.13 в 03:00 |
||
|
Давайте начнем с создания простого скрипта инициализации в папке нашего приложения (file app/__init__.py) wiygn 07.09.13 в 03:01 |
||
|
from flask import Flask wiygn 07.09.13 в 03:01 |
||
|
app = Flask(__name__) wiygn 07.09.13 в 03:01 |
||
|
Скрипт выше просто создает объект приложения (класса Flask), затем импортирует модуль представлений, который мы еще не написали. wiygn 07.09.13 в 03:02 |
||
|
Представления — это обработчики, которые отвечают на запросы веб-браузера. Представления в Flask пишутся как Python функции. Каждая функция представления сопоставляется с одним или несколькими запросами URL. wiygn 07.09.13 в 03:04 |
||
|
Напишем нашу первую функцию представления (file app/views.py) wiygn 07.09.13 в 03:04 |
||
|
from app import app wiygn 07.09.13 в 03:05 |
||
|
@app.route('/') wiygn 07.09.13 в 03:05 |
||
|
Это весьма простое представление, которое просто возвращает строку для отображения в пользовательском браузере. Два декоратора route создают привязку адресов / и /index к этой функции. wiygn 07.09.13 в 03:07 |
||
|
Последним шагом для получения полностью работающего веб-приложения будет создание скрипта, который стартует веб-сервер нашего приложения. Давайте назовем скрипт run.py и положем его в корневой каталог: wiygn 07.09.13 в 03:08 |
||
|
#!flask/bin/python wiygn 07.09.13 в 03:08 |
||
|
Скрипт просто импортирует переменную app из нашего пакета app и вызывает метод run для того, чтобы запустить сервер. Помните, что переменная app содержит экземпляр объекта Flask, мы создали его выше. wiygn 07.09.13 в 03:11 |
||
|
Для запуска вашего приложения просто запустите скрипт. На OS X, Linux и Cygwin вам следует пометить файл исполняемым перед тем как вы сможете его запустить. wiygn 07.09.13 в 03:12 |
