Тип данных пути не принимает полный 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