如何在网页中获取当前URL?环境:Microsoft Edge+Windows 10 Home+VS捆绑Python
嘿,我来帮你把这个问题理清楚!你提到了Python和网页场景,其实获取当前URL分两种常见情况,我都给你拆解一下:
场景1:浏览器前端直接获取(纯JavaScript)
既然你用的是Windows 10上的Edge浏览器,要是想在网页前端直接拿到当前页面的URL,用JavaScript就可以轻松搞定:
- 想拿到完整的URL(包含协议、域名、路径、查询参数等所有部分),用
window.location.href - 只需要路径部分的话,用
window.location.pathname - 单独获取查询参数(就是
?后面的部分),用window.location.search
举个实际操作的例子:打开Edge的开发者工具(按F12),切换到「控制台」标签,输入下面的代码回车,就能看到当前页面的完整URL了:
console.log(window.location.href);
场景2:Python后端获取请求的URL(Web开发场景)
你用的是Visual Studio捆绑的Python,应该是在做Web开发吧?不同的Python Web框架,获取请求URL的方式略有差异,给你几个常用框架的实现:
Flask框架
在视图函数里,通过request对象就能拿到各种URL相关信息:
from flask import Flask, request app = Flask(__name__) @app.route('/') def show_current_url(): # 获取完整URL full_url = request.url # 获取协议+域名的基础URL base_url = request.base_url # 获取路径部分 path = request.path return f"当前完整URL: {full_url}" if __name__ == '__main__': app.run(debug=True)
Django框架
在Django的视图函数中,用request.build_absolute_uri()获取完整URL,或者通过request.path拿到路径部分:
from django.http import HttpResponse def display_current_url(request): full_url = request.build_absolute_uri() path = request.path return HttpResponse(f"当前访问的完整URL是: {full_url}")
原生WSGI(无框架场景)
要是你用原生WSGI写简单的Web服务,可以从环境变量中拼接出完整URL:
def application(environ, start_response): # 拼接协议、域名、路径 full_url = f"{environ['wsgi.url_scheme']}://{environ['HTTP_HOST']}{environ['PATH_INFO']}" # 如果有查询参数,拼接到后面 if environ.get('QUERY_STRING'): full_url += f"?{environ['QUERY_STRING']}" start_response('200 OK', [('Content-Type', 'text/plain')]) return [f"当前请求的URL: {full_url}".encode()]
小提醒:之前你查的内容如果没区分开前端和后端,可能会有点懵——前端是浏览器直接获取当前页面的URL,后端是Python在处理用户请求时,从请求对象里提取对应的URL信息,根据你的实际开发场景选择就行啦!
内容的提问来源于stack exchange,提问作者MickeyLater
相关产品推荐
相关产品推荐

