Baňka trasa s URI kódovaného složkou

hlasů
18

Zdá se, že baňka nepodporuje cesty s URI kódovaného složkou. Jsem zvědavý, jestli dělám něco špatně, nebo zda existuje zvláštní příznak Musím zahrnout.

Moje cesta vypadá nějak takto:

@app.route('/foo/<encoded>/bar/')
def foo(encoded):
  # ...
  pass

Adresa URL, že by to mělo odpovídat může vypadat jako tyto:

http://foobar.com/foo/xxx/bar/ # matched correctly, no URI component
http://foobar.com/foo/x%2Fx%2Fx%2F/bar/ # not matched correctly, URI component

Bývalý URL funguje, druhý vyplivne krásný 404.

Dík!

Položena 18/08/2011 v 00:03
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
25

Přidat pathdo svého právního url:

@app.route('/foo/<path:encoded>/bar/')

Aktualizujte per Komentář: docs trasa API Nacházíte se zde: http://flask.pocoo.org/docs/api/#flask.Flask.route . Podkladové Třídy, které implementují pathměnič styl trasy se zde: http://werkzeug.pocoo.org/docs/routing/#custom-converters (to je jeden z opravdu pěkné části pocoostan.) Pokud jde o koncová lomítka, existují zvláštní pravidla, která činí:

Pokud pravidlo končí lomítkem a je požadováno bez lomítka ze strany uživatele, je uživatel automaticky přesměrován na stejné stránce s lomítkem připojeným.

Pokud pravidlo nekončí lomítkem a požadavku klienta na stránce s lomítkem, 404 nebyl nalezen se zvýší.

Také mějte na paměti, že pokud jste na Apache a čekají url lomítko-tažený, tj bookmarklet, který předkládá http://ex.com/foo/<path:encoded>/bara encodeddostane něco s dvojitými průstřihy, bude Apache převést více lomítka na jediné.

Odpovězeno 18/08/2011 v 01:27
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more