Нудное введение:

Замечено, что новичкам трудно перейти от теории к практике - заставить себя писать, а не только читать. Чтобы помочь мы постоянно публикуем различный материал и указываем как применить эти знания на практике.

В этот раз решили написать 2 небольших проекта:

  • Первый - страница со статистикой отжимания. Будет показано, как с помощью flask + google chart's сделать проект для сохранения и визуализации количества отжиманий.
  • Второй - vk2rss - сервис для преобразования стен групп ВКонтакте в RSS. Будет рассмотрен парсинг, работа с VK API, создание простого GUI.

Оба проекта будут описаны в виде текста. А следующие попробую записать в виде скринкаста (Это ведь интересней?)

Для справки: я придерживаюсь правила 80% практика / 20% теория. Поэтому не ожидайте глубокой теории. По тексту будут расставлены отсылки к необходимой теории. Смело задавайте вопросы в комментариях.

Повторяйте за мной!

Первый проект:

flask - веб-фреймворк. Обладает высокой гибкостью, расширяется (добавляются возможности) за счет сторонних модулей.

Установить flask можно как и другие пакеты - через pip/easy_install:

Подсказка: проекты стоит разрабатывать в виртуальном окружении - virtualenv.

Подсказка: используйте pip для установки пакетов

Ссылки для изучения pip и virtualenv:

http://old.pynsk.ru/posts/2015/Dec/25/poleznye-instrumenty-virtualenv-pip/

http://proft.me/2010/04/3/python-i-okruzhenie-virtualenv/

Выполняем для установки:

pip install flask

Сразу к коду. Традиционный hello world, на flask:

# -*- encoding: utf-8 -*-
from flask import Flask
app = Flask(__name__)

@app.route("/")
def index():
    return "Hello World!"

if __name__ == "__main__":
    app.run()

Данный код создает и запускает web-сервер. Пользователь зашедший на главную страницу (/) увидит Hello World!. Запускаем скрипт и получаем:

 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

Открываем браузер и вводим http://127.0.0.1:5000/. Если сделано все правильно, то увидите Hello World!

Поэксперементируйте с отображаемым текстом. Выводите разный текст, воспользуйтесь HTML-тегами

В описании проекта сказано - "страница". Добавим ее. Создаем папку templates, а в папке файл 'index.html'. В результате у нас получилась такая структура файлов и папок:

.
├── app.py
├── requirements.txt
└── templates
    └── index.html

index.html, пришло твое время! Заменим Hello world в Python коде на html страницу с таким же содержанием. Записываем в файл:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h1>Hiiiiiiii</h1>
</body>
</html>

Заготовка страницы есть. Теперь надо эту страницу показать пользователю. Возвращаемся в Python-код и переписываем функцию index:

@app.route("/")
def index():
    return render_template("index.html")

Не забудьте добавить импорт функции render_template (ведь вы уже догадались что она делает?). Добавляем в начале app.py файла:

from flask import render_template

Перезапустите flask-сервер, снова откройте главную страницу. Если сделали все правильно, то увидете Hiiiiiiii.

Промежуточный итог: создали flask-проект с шаблоном. При заходе на главную страницу сервера нас приветствуют с помощью Hiiiiiiii


Продолжение следует.



Комментарии