Flask для школьниковГлава 3 из 10
SilverTests.ru · Курс веб-разработкиПервое приложение
Первое приложение
5 строк Python — и у тебя работающий веб-сервер
Ты уже знаешь, что такое клиент, сервер, HTTP-запрос и маршрут.
Цель
Установить Flask. Написать app.py с тремя маршрутами. Увидеть результат в браузере. Понять динамические маршруты и render_template.
📝 Техзадание: Создать три страницы
http://127.0.0.1:5050/ — главная с приветствием.
http://127.0.0.1:5050/habits — текст «Мои привычки».
http://127.0.0.1:5050/habit/бег — страница конкретной привычки (динамическая).
1Установка и структура
pip install flask
habit_tracker/
├── app.py ← главный файл сервера
└── templates/ ← HTML-шаблоны (создадим позже)
└── habit.html
2Минимальное приложение
from flask import Flask
app = Flask(__name__)
@app.route('/')
def home():
return 'Трекер привычек — Добро пожаловать!'
if __name__ == '__main__':
app.run(debug=True, port=5050)
Разбор по строкам:
| Строка |
Что делает |
Flask(__name__) |
Создаёт приложение. __name__ сообщает Flask, где искать файлы. |
@app.route('/') |
Декоратор: «когда откроют адрес /, вызови функцию ниже». |
return '...' |
Текст, который увидит пользователь — это и есть HTTP-ответ. |
debug=True |
Сервер перезапускается при изменении кода + подробные ошибки. |
port=5050 |
Порт сервера (5000 занят на macOS). |
Запуск: python app.py → открой http://127.0.0.1:5050 в браузере. 127.0.0.1 — адрес «я сам», твой компьютер.
3Добавляем маршруты
@app.route('/habits')
def habits():
return 'Мои привычки: бег, чтение, английский'
@app.route('/about')
def about():
return 'Трекер привычек v1.0'
Теперь работают три адреса: /, /habits, /about. Каждый маршрут — как комната в доме: свой адрес, своя функция.
4Динамические маршруты
Изменяемую часть адреса пишем в угловых скобках:
@app.route('/habit/<name>')
def habit(name):
return f'Привычка: {name}'
/habit/бег → name = "бег". /habit/йога → name = "йога". Один маршрут обслуживает бесконечно много страниц.
5HTML-шаблоны
Возвращать строки неудобно для настоящих страниц. Flask умеет загружать HTML из папки templates/:
from flask import Flask, render_template
@app.route('/habit/<name>')
def habit(name):
return render_template('habit.html', name=name)
<!-- templates/habit.html --> <h1>✅ Привычка: {{ name }}</h1> <a href="/">← На главную</a>
{{ name }} — синтаксис Jinja2: «подставь сюда значение переменной name из Python».
Папка должна называться именно templates — Flask ищет шаблоны только там. Иначе — ошибка TemplateNotFound.
Теперь у тебя есть работающий сервер с несколькими страницами. В следующей главе мы избавимся от дублирования HTML через наследование шаблонов.