2015-08-13 4 views
0

В Маршруте регистрация функциональности КОЛБЫ в, http://flask.pocoo.org/docs/0.10/api/#url-route-registrations, вы можете сделать следующее:колбы URL маршрут зарегистрирование

@app.route('/users/page/<int:page>/line/<int:line>/word/<string:word>') 

Таким образом, в приведенном выше примере, мы хотим, чтобы перейти к конкретному слову, на определенную строке, на определенную страницу.

По существу, мой вопрос заключается в том, должна ли переменная часть быть последней частью URL-адреса, или вы можете добавить к ней больше бит?

EDIT: То, что я хочу сказать, все примеры, которые я видел до сих пор выглядят так:

@app.route('/users/page/<int:page>') 

, но вы можете сделать это:

@app.route('/users/page/<int:page>/sentence/<int:sentence>') 

ответ

2

Вы могут добавлять параметры строки запроса к URL-адресу, например, ?search=blue, но вы не можете добавить еще одну «папку», такую ​​как .../<string:word>/character, так как маршрут не будет соответствовать записи в карте маршрутов.

Но если вы просто хотите, чтобы определить маршрут и не последняя часть будет переменной, это хорошо - например

@app.route('/users/page/<int:page>/line/<int:line>/word/<string:word>/test')

Edit:

@app.route('/users/page/<int:page>/sentence/<int:sentence>') 

также будет отлично - это ничем не отличается от первого примера, который вы дали в своем вопросе.

+0

Спасибо Мт. Прежде чем углубиться в это, я все еще пытаюсь определить, построена ли фляжка для того, что я хочу делать. Если вы не возражаете, не могли бы вы подтвердить? Например, пользователь обращается к URL-адресу, например http: // localhost: 8080/test/sensor/sensor1. Затем флажок запрашивает базу данных для «sensor1» и возвращает данные в виде файла CSV для загрузки пользователем. Является ли Flask способ пойти на это? Запрос также может быть http: // localhost: 8080/test/sensor/sensor1/date/2001-01-01, поэтому мой предыдущий вопрос. Благодаря! –

+0

Колба может определенно сделать это. Вы бы просто зарегистрировали два маршрута: один с датой и один без. И выход CSV-файла тоже не проблема, вы просто генерируете ответ с 'send_file' или аналогичным. –

+0

Звучит как план. Спасибо Мэтту, ты был очень полезным. Вы разработчик Flask на полный рабочий день? –

1

Все, что вы сделали, вполне приемлемо. Вот минимальный пример:

from flask import Flask 

app = Flask(__name__) 


@app.route('/users/page/<int:page>/line/<int:line>/word/<string:word>') 
def user_page(page, line, word): 
    return '{} {} {}'.format(page, line, word) 


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

Откройте браузер и перейдите к http://localhost:5000/users/page/5/line/47/word/something.

И Колба с удовольствием вернется:

5 47 something

Смежные вопросы