如何在Flask的404错误处理中获取用户请求的URL
获取404错误时用户访问的URL
嘿,这个需求实现起来超简单!Flask的request对象已经帮我们封装了请求的所有信息,包括用户尝试访问的URL,直接用就行。
首先,确保你已经从Flask里导入了request:
from flask import request
然后修改你的404错误处理函数,把请求URL加入日志:
@app.errorhandler(404) def page_not_found(e): # 两种获取URL的方式,按需选择: # 1. 只获取路径部分(不含查询参数) # requested_url = request.path # 2. 获取完整路径(包含查询参数,比如 /missing?foo=bar) requested_url = request.full_path logger.warning('User raised a 404: {error}, requested URL: {url}'.format(error=str(e), url=requested_url)) return render_template('404.html'), 404
简单解释下:
request.path返回的是域名之后的路径部分,比如用户访问https://your-site.com/nonexistent,它会返回/nonexistentrequest.full_path会包含路径和查询参数,比如用户访问https://your-site.com/nonexistent?param=test,它会返回/nonexistent?param=test
这样你就能在日志里清晰看到用户触发404时的具体访问地址啦!
内容的提问来源于stack exchange,提问作者jjacobi
相关产品推荐
相关产品推荐

