0Pricing
Python Academy · Урок

Маршруты и представления

Обрабатывайте HTTP-запросы

«Маршруты и представления» — бесплатный урок Python Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Python Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Python Academy содержит 4 уроков всего.

Что такое Flask

Flask — это лёгкий веб-фреймворк для Python. Он позволяет создавать веб-приложения и API с минимальным количеством шаблонного кода. Установите его с помощью pip install flask.

from flask import Flask
app = Flask(__name__)
print('Flask app created:', app.name)

Создание приложения

Каждое приложение Flask начинается с объекта app = Flask(__name__). Аргумент __name__ помогает Flask находить такие ресурсы, как шаблоны.

from flask import Flask
app = Flask(__name__)
if __name__ == '__main__':
    # app.run() starts the development server
    print('App is ready to run')

Первый маршрут

Маршрут связывает URL с функцией (так называемым представлением). Декоратор @app.route() связывает путь с функцией, а возвращаемое функцией значение становится телом ответа.

from flask import Flask
app = Flask(__name__)

@app.route('/')
def home():
    return 'Hello, world!'
print('Route / -> home')

Несколько маршрутов

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

from flask import Flask
app = Flask(__name__)

@app.route('/')
def home():
    return 'Home page'

@app.route('/about')
def about():
    return 'About page'
print('Two routes defined')

Динамические части URL

Извлекайте части URL с помощью <variable>. Flask передаёт их в представление как аргументы.

from flask import Flask
app = Flask(__name__)

@app.route('/user/<username>')
def show_user(username):
    return 'Profile of ' + username
print('URL /user/alice -> show_user')

Преобразователи типов

Добавьте преобразователь, например <int:post_id>, чтобы Flask проверил значение и преобразовал его в нужный тип.

from flask import Flask
app = Flask(__name__)

@app.route('/post/<int:post_id>')
def show_post(post_id):
    return 'Post number ' + str(post_id)
print('post_id arrives as an int')

Методы HTTP

По умолчанию маршруты обрабатывают GET. Передайте methods=['GET', 'POST'], чтобы принимать другие методы.

from flask import Flask
app = Flask(__name__)

@app.route('/submit', methods=['GET', 'POST'])
def submit():
    return 'Handled GET or POST'
print('submit accepts GET and POST')

Проверка метода

Внутри представления request.method сообщает, какой метод был использован, чтобы Вы могли выбрать нужную логику.

from flask import Flask, request
app = Flask(__name__)

@app.route('/submit', methods=['GET', 'POST'])
def submit():
    if request.method == 'POST':
        return 'Form submitted'
    return 'Show the form'
print('Branch on request.method')

Возврат кодов состояния

Верните кортеж (body, status_code), чтобы задать состояние HTTP, например 404 для отсутствующего ресурса.

from flask import Flask
app = Flask(__name__)

@app.route('/missing')
def missing():
    return 'Not here', 404
print('Returns body with status 404')

Построение URL

url_for('view_name') создаёт URL по имени представления. Это позволяет не прописывать пути жёстко, поскольку они могут измениться.

from flask import Flask, url_for
app = Flask(__name__)

@app.route('/about')
def about():
    return 'About'
# url_for('about') -> '/about'
print('url_for builds URLs by view name')

Запуск сервера

Вызовите app.run(debug=True), чтобы запустить сервер разработки. Режим отладки перезапускает сервер при изменениях и показывает полезные страницы с описанием ошибок.

from flask import Flask
app = Flask(__name__)

@app.route('/')
def home():
    return 'Hi'

if __name__ == '__main__':
    app.run(debug=True)

Проверка

Проверьте свои знания о маршрутизации.

Повторение

Вы создали маршруты и представления Flask.

  • app = Flask(__name__) создаёт приложение
  • @app.route() связывает URL с функцией представления
  • <int:id> извлекает и преобразует динамические части URL
  • methods= и request.method обрабатывают методы HTTP
  • url_for() создаёт URL, а app.run() запускает сервер

Часто задаваемые вопросы

Урок «Маршруты и представления» бесплатный?

Да — полный текст урока «Маршруты и представления» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Python Academy, подпишись на CoddyKit PRO. Курс Python Academy содержит 4 уроков всего.

Чему я научусь в уроке «Маршруты и представления»?

Обрабатывайте HTTP-запросы Ты практикуешь Python Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Python Academy?

Предыдущий опыт не требуется. Python Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «Маршруты и представления»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Python Academy?

Да. Каждый урок Python Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Маршруты и представления
  2. Шаблоны с Jinja2
  3. Формы и данные запросов
  4. Создание REST-конечной точки
← Назад к Python Academy