Тип данных пути не принимает полный URL с '?' в этом

Пример: /open/123/http://x.com/wordpress/?p=592

@route('/open/<item_id:int>/<url:path>')
def open(item_id , url):
    print url

Выход этого отпечатка

'Http://x.com/wordpress/'

Что я хочу, так это полный URL

'Http://x.com/wordpress/?p=592'

Я хочу полный URL, потому что я собираюсь записать щелчок пользователя, а затем направить его к нему.

2 ответа

Решение

Маршруты соответствуют только URL- пути, а не запросу (RFC 3986, раздел 3.4). Попробуйте это вместо этого:

@route('/open/<item_id:int>/<url:path>')
def open(item_id , url):
    if request.query_string:
        url += '?' + request.query_string
    print url

Вам нужно что-то вроде

@route('/open/<item_id:int>/<url:path>/<stuff_after_slash:whatevertype>')
def open(item_id , url, stuff_after_slash):
    print url + stuff_after_slash
Другие вопросы по тегам