Chcę wykryć, czy żądanie pochodzi z hosta localhost:5000
lub foo.herokuapp.com
i jaką ścieżkę zażądano. Jak uzyskać te informacje o żądaniu usługi Flask?
144
Możesz sprawdzić adres URL za pomocą kilku Request
pól :
Użytkownik żąda następującego adresu URL:
http://www.example.com/myapplication/page.html?x=y
W takim przypadku wartości wyżej wymienionych atrybutów byłyby następujące:
path /page.html script_root /myapplication base_url http://www.example.com/myapplication/page.html url http://www.example.com/myapplication/page.html?x=y url_root http://www.example.com/myapplication/
Możesz łatwo wyodrębnić część nadrzędną za pomocą odpowiednich podziałów.
Request.root_url
i jako zwrot otrzymuję tylko<werkzeug.utils.cached_property object>
zamiast ładnie sformatowanegohttp://www.example.com/myapplication/
. Lub ta funkcja nie działa na hoście lokalnym?http://www.example.com/
nie zwracahttp://www.example.com/myapplication/
base_urlhttp://www.example.com/myapplication/
inny przykład:
żądanie:
następnie:
źródło
powinieneś spróbować:
Powinien działać zawsze, nawet na hoście lokalnym (właśnie to zrobił).
źródło
Jeśli używasz Pythona, proponuję zbadać obiekt żądania:
dir(request)
Ponieważ obiekt obsługuje dyktowanie metody :
request.__dict__
Można go wydrukować lub zapisać. Używam go do logowania 404 kodów w Flasku:
źródło