Рубрики
Без рубрики

Колба Вкусный Учебник : Построение системы управления библиотекой Часть 3 – Маршруты

Понять, как работают маршруты в колбе

Автор оригинала: Abdur-Rahmaan Janhangeer.

Предыдущая: Часть 2: Начните С Загруженного Скелета

Я настроил то, что нам нужно в этом репо: Delicious Flask-3.1 . Загрузите его и запустите app.py (Если вы новичок в python, см. Часть 2).

В этой части мы рассмотрим некоторые концепции, связанные с маршрутами.

Если вы запустите вышеописанное приложение и перейдите в http://127.0.0.1:5000/

ты бы видел

abcd

почему? потому что мы так сказали в app.py:

@app.route('/')
def index(): 
    return 'abcd'
Текст Alt

Давайте попробуем http://127.0.0.1:5000/test

мы получаем тест ок

Текст Alt

Как мы его настроили:

@app.route('/test')
def route_test(): 
    return 'test ok'

Добавление параметров

если вы это сделаете http://127.0.0.1:5000/greet/bob вы получите:

привет Боб

что бы вы ни положили после great, оно всегда вернется привет + то, что вы положили

Это потому, что Flask позволяет задавать параметры. Вот как вы это делаете:

Текст Alt

Операции с использованием параметров

Допустим, вы хотите сделать:

/добавить/2/3 и вы хотите получить 5

в app.py вы увидите функцию:

Но, если вы запустите его, вы получите … 23

Это потому, что a и b-строки

Если вы хотите получить 5, вы должны конвертировать перед добавлением.

Указание типов в параметрах

Если вы хотите получить a и b как целые числа напрямую, вы можете сделать это, указав тип в начале:

@app.route('/converted-add//')
def converted_add(a, b): 
    return '{}'.format(a+b) # no need to convert

Если вы попробуете converted-add/5/abc , вы получите ошибки.

Почему я получаю # AssertionError: отображение функции представления перезаписывает существующую функцию конечной точки: <имя здесь>?

Это потому что если вы это сделаете например:

@app.route('/')
def index(): 
    return 'abcd' 

@app.route('/test')
def index(): 
    return 'test ok'

Первая и вторая функции имеют одно и то же имя. Вы должны изменить имя второй функции на что-то другое.

TODO

Добавьте фрагмент, чтобы, когда мы это сделаем

/умножить/5/3 мы получаем 15

Следите за обновлениями для следующей части!

Моя почта, если вы чего-то не понимаете: arj.python в gmail dot com