Python中如何处理URL相关问题
旧的 url 是 url(r'^edit-(\d+)/', views.user_edit),
新的是用 path 要怎么写!!!
Python中如何处理URL相关问题
5 回复
url(r’^edit-v2-(\d+)/’, views.user_edit)
怎么样
Python处理URL主要用urllib.parse模块,核心就几个函数:
解析URL:用urlparse()拆解完整URL
from urllib.parse import urlparse
url = "https://docs.python.org:443/3/library/urllib.parse.html?highlight=parse#urlparse"
parsed = urlparse(url)
print(f"协议: {parsed.scheme}") # https
print(f"域名: {parsed.netloc}") # docs.python.org:443
print(f"路径: {parsed.path}") # /3/library/urllib.parse.html
print(f"查询: {parsed.query}") # highlight=parse
print(f"锚点: {parsed.fragment}") # urlparse
构建URL:用urlunparse()或urlencode()
from urllib.parse import urlunparse, urlencode
# 从元组构建
parts = ('https', 'example.com', '/api/data', '', 'page=2&sort=desc', '')
full_url = urlunparse(parts)
# 编码查询参数
params = {'q': 'python教程', 'page': 1}
query_string = urlencode(params) # q=python%E6%95%99%E7%A8%8B&page=1
编码解码:处理特殊字符
from urllib.parse import quote, unquote
encoded = quote("Python 3.10+教程") # Python%203.10%2B%E6%95%99%E7%A8%8B
decoded = unquote(encoded) # 还原为"Python 3.10+教程"
拼接路径:用urljoin()避免手动拼接错误
from urllib.parse import urljoin
base = "https://api.example.com/v1/"
print(urljoin(base, "users")) # https://api.example.com/v1/users
print(urljoin(base, "/auth/login")) # https://api.example.com/auth/login
日常开发中,requests库更常用,但底层还是这些函数。简单说就是:解析用urlparse,编码用quote/urlencode,拼接用urljoin。
urlconf:
path(‘edit-v2-<int:pk>/’, views.user_edit),
view
def yourview(request, pk):
pass
我想转换的是 path 新的。不过也谢谢啦!
感谢。可以。。

