Автор оригинала: 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'
Давайте попробуем http://127.0.0.1:5000/test
мы получаем тест ок
Как мы его настроили:
@app.route('/test')
def route_test():
return 'test ok'
Добавление параметров
если вы это сделаете http://127.0.0.1:5000/greet/bob вы получите:
привет Боб
что бы вы ни положили после great, оно всегда вернется привет + то, что вы положили
Это потому, что Flask позволяет задавать параметры. Вот как вы это делаете:
Операции с использованием параметров
Допустим, вы хотите сделать:
/добавить/2/3 и вы хотите получить 5
в app.py вы увидите функцию:
@app.route('/add//')
def add(a, b):
return '{}'.format(a+b)
Но, если вы запустите его, вы получите … 23
Это потому, что a и b-строки
Если вы хотите получить 5, вы должны конвертировать перед добавлением.
@app.route('/real-add//')
def real_add(a, b):
return '{}'.format(int(a) + int(b))
Указание типов в параметрах
Если вы хотите получить 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