Django 中如何处理带有查询参数的 URL?
在 Django 中处理带有查询参数的 URL 非常简单,只需要在视图函数中使用 request.GET 字典来获取查询参数即可。
以处理形如 "http://pidancode.com/search?q=皮蛋编程" 的 URL 为例,可以在 views.py 中定义如下视图函数:
from django.shortcuts import render def search(request): q = request.GET.get('q', '') # 获取名为 q 的查询参数,若不存在则默认为空字符串 return render(request, 'search_result.html', {'query': q})
在模板中可以像这样使用查询参数:
<h1>搜索结果:{{ query }}</h1>
当用户访问 "http://pidancode.com/search?q=皮蛋编程" 时,相应视图函数会把查询参数 'q' 的值 '皮蛋编程' 获取到并传递给模板,最终渲染出的页面会显示“搜索结果:皮蛋编程”。
注意,在获取查询参数时建议使用 request.GET.get() 方法,并为参数指定默认值,以避免出现 KeyError 异常。还应该注意防范跨站脚本攻击(XSS)等安全问题,例如应该对查询参数进行适当的转义或过滤处理。
相关文章