답변:
여러 Request
필드를 통해 URL을 검사 할 수 있습니다 .
사용자는 다음 URL을 요청합니다.
http://www.example.com/myapplication/page.html?x=y
이 경우 위에서 언급 한 속성의 값은 다음과 같습니다.
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/
적절한 분할로 호스트 부분을 쉽게 추출 할 수 있습니다.
http://www.example.com/
하지 http://www.example.com/myapplication/
BASE_URL 반환http://www.example.com/myapplication/
다른 예시:
의뢰:
curl -XGET http://127.0.0.1:5000/alert/dingding/test?x=y
그때:
request.method: GET
request.url: http://127.0.0.1:5000/alert/dingding/test?x=y
request.base_url: http://127.0.0.1:5000/alert/dingding/test
request.url_charset: utf-8
request.url_root: http://127.0.0.1:5000/
str(request.url_rule): /alert/dingding/test
request.host_url: http://127.0.0.1:5000/
request.host: 127.0.0.1:5000
request.script_root:
request.path: /alert/dingding/test
request.full_path: /alert/dingding/test?x=y
request.args: ImmutableMultiDict([('x', 'y')])
request.args.get('x'): y
Python을 사용하는 경우 요청 객체를 탐색하여 제안합니다.
dir(request)
객체가 dict 메소드를 지원하기 때문에 :
request.__dict__
인쇄 또는 저장할 수 있습니다. Flask에 404 코드를 기록하는 데 사용합니다.
@app.errorhandler(404)
def not_found(e):
with open("./404.csv", "a") as f:
f.write(f'{datetime.datetime.now()},{request.__dict__}\n')
return send_file('static/images/Darknet-404-Page-Concept.png', mimetype='image/png')
Request.root_url
하고있어 반환<werkzeug.utils.cached_property object>
형식으로 대신 멋지게 얻을 수http://www.example.com/myapplication/
있습니다. 아니면이 기능이 localhost에서 작동하지 않습니까?