Задачи, Статьи, Недельный Python Дайджест, FAQ, Курсы по Python, Видео-уроки, Скринкасты
Пишем простые проекты. Проект #1. Часть #1
Нудное введение:
Замечено, что новичкам трудно перейти от теории к практике - заставить себя писать, а не только читать. Чтобы помочь мы постоянно публикуем различный материал и указываем как применить эти знания на практике.
В этот раз решили написать 2 небольших проекта:
- Первый - страница со статистикой отжимания. Будет показано, как с помощью flask + google chart's сделать проект для сохранения и визуализации количества отжиманий.
- Второй - vk2rss - сервис для преобразования стен групп ВКонтакте в RSS. Будет рассмотрен парсинг, работа с VK API, создание простого GUI.
Оба проекта будут описаны в виде текста. А следующие попробую записать в виде скринкаста (Это ведь интересней?)
Для справки: я придерживаюсь правила 80% практика / 20% теория. Поэтому не ожидайте глубокой теории. По тексту будут расставлены отсылки к необходимой теории. Смело задавайте вопросы в комментариях.
Повторяйте за мной!
Первый проект:
flask
- веб-фреймворк. Обладает высокой гибкостью, расширяется (добавляются возможности) за счет сторонних модулей.
Установить flask
можно как и другие пакеты - через pip/easy_install
:
Подсказка: проекты стоит разрабатывать в виртуальном окружении - virtualenv.
Подсказка: используйте pip для установки пакетов
Ссылки для изучения pip и virtualenv:
http://pynsk.ru/posts/2015/Dec/25/poleznye-instrumenty-virtualenv-pip/
Выполняем для установки:
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
Продолжение следует.
Комментарии