Načítání url kotvu v požadavku Werkzeug

hlasů
8

Mám DAV protokol, který ukládá data, out-of-band v url kotvy, např ghiinu DELETE /abc.def#ghi. Server je aplikace baňky.

Vidím požadavek přijít v na drátě přes tcpdump, ale když se podívám na objektu Werkzeug Request (jako url () nebo BASE_URL ()), vše, co jsem se vrátit znamená /abc.def. #ghiByla vynechají.

Existuje metoda, která vrátí tuto informaci, nebo musím podtřídy Žádost zvládnout sám? Pokud ano, je zde příklad mohu použít jako inspiraci?

Položena 29/09/2011 v 13:52
zdroj uživatelem
V jiných jazycích...                            


3 odpovědí

hlasů
9

Běžel jsem do stejného problému. Facebook autentizace API vrátí token přístupu za hash, která je přiložena na přesměrování URL. Stejným způsobem, baňka se request.url klesá vše v URL za znakem hash.

Jsem také pomocí baňky, takže myslím, že můžete použít můj brute-force řešení pomocí JavaScriptu v window.location.href získat úplnou adresu URL. Pak už jen jsem vytáhl kus, který jsem potřeboval (token přístupu), vložte jej do přesměrování URL, kde bych mohl projít přístupového prvku jako argument k funkci přijímací pohledu. Zde je kód:

@app.route('/app_response/<response>', methods=['GET'])
def app_response_code(response):
    return '''  <script type="text/javascript">
                var token = window.location.href.split("access_token=")[1]; 
                window.location = "/app_response_token/" + token;
            </script> '''

@app.route('/app_response_token/<token>/', methods=['GET'])
def app_response_token(token):
    return token

V případě, že se vám podaří (d), jak to udělat v rámci Werkzeug, mám zájem vědět, jak na to.

Odpovězeno 23/10/2011 v 16:07
zdroj uživatelem

hlasů
9

Z Wikipedie ( Fragment Identifier ) (nemají čas, aby ji najít v RFC):

Identifikátor části má jinou funkci, než je zbytek URI: konkrétně, jeho zpracování je výhradně na straně klienta bez účasti serveru

Takže Baňka - nebo jakýkoli jiný rámec - nemá přístup k #ghi.

Odpovězeno 11/02/2013 v 10:52
zdroj uživatelem

hlasů
5

To lze provést pomocí flask.url_for s _anchorargumentem klíčových slov:

url_for('abc.def', _anchor='ghi')
Odpovězeno 18/11/2014 v 07:36
zdroj uživatelem

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