Конвертер string
Конвертер string - это встроенный конвертер Flask,
который применяется для маршрутов с текстовыми параметрами.
Он используется по умолчанию, если тип параметра не указан явно.
Конвертер принимает любую строку, кроме символа /,
поэтому не может содержать слеши внутри значения.
Синтаксически конвертер указывается в угловых скобках
через двоеточие после имени параметра:
<string:name>. При этом запись
<name> полностью эквивалентна
<string:name>.
Синтаксис
@app.route('/path/<string:name>')
Пример
Давайте повесим обработчик с параметром типа string:
from flask import Flask
app = Flask(__name__)
@app.route('/user/<string:name>')
def user(name):
return 'hello, ' + name
Результат выполнения кода для адреса /user/abcde:
hello, abcde
Пример
Конвертер string не принимает слеши внутри значения.
Попробуем обратиться по адресу /user/abc/de:
from flask import Flask
app = Flask(__name__)
@app.route('/user/<string:name>')
def user(name):
return name
Такой адрес вернёт ошибку 404, так как символ /
не может быть частью параметра типа string.
Пример
Давайте используем несколько параметров типа string
в одном маршруте:
from flask import Flask
app = Flask(__name__)
@app.route('/<string:first>/<string:second>')
def pair(first, second):
return first + '-' + second
Результат выполнения кода для адреса /abcde/user:
abcde-user
Пример
Давайте сгенерируем URL с параметром string
через функцию url_for:
from flask import Flask, url_for
app = Flask(__name__)
@app.route('/user/<string:name>')
def user(name):
return name
with app.test_request_context():
res = url_for('user', name='abcde')
print(res)
Результат выполнения кода:
"/user/abcde"