
Django请求响应
更新: 2025/2/24 字数: 0 字 时长: 0 分钟
请求
在前面例子当中可以看到每一个视图函数都带了一个默认的 request
参数,其实它是一个对象,里面封装了用户发送过来的所有请求相关数据。
请求类型
**在视图函数中,我们可以通过 request.method
方法来区分用户发送的请求类型。**例如,在 view.py
视图函数文件中新增如下代码:
python
def something(request):
# 获取请求类型
if request.method == 'GET':
return HttpResponse('用户发送的GET请求')
else:
return HttpResponse('用户发送的POST请求')
再将新的视图函数注册到 urls.py
文件中:
python
path('something/', app01.views.something)
访问该地址 http://127.0.0.1:8000/something/
可见通过浏览器回车发送的请求是一个GET请求:
URL参数
使用网址来访问网站的人都知道URL是可以带参数的,例如 http://127.0.0.1:8000/something/?n1=123&n2=999
,我们可以修改上面的代码来获取URL中的参数:
python
def something(request):
# 获取请求类型
if request.method == 'GET':
# 获取URL中的参数
print(request.GET)
# 获取n1参数、n2参数
print({'n1': request.GET.get('n1'), 'n2': request.GET.get('n2')})
return HttpResponse('用户发送的GET请求')
else:
return HttpResponse('用户发送的POST请求')
现在我们访问上面的地址,控制台就会输出如下结果:
POST表单
**熟悉爬虫的同学都知道,POST请求和GET请求最大区别就是,POST请求的参数是通过一个表单进行发送,而GET请求是通过URL参数进行发送。在这里,我们可以通过 request.POST
方法来获取POST请求传递的表单数据。**修改上面的代码如下:
响应
在前面的请求当中,已经学习了Django的两种响应,我们回顾学习。
返回字符串
方法 HttpResponse
在前面的例子讲解中提到过,其作用就是将字符串内容返回给请求者:
python
def test(request):
# HttpResponse方法,响应后返回字符串内容
return HttpResponse('用户发起请求')
返回HTML
方法 render
在前面的例子讲解中提到过,其作用就是将渲染后的HTML页面内容返回给请求者:
python
def test(request):
# render方法,第一个参数默认为request;第二个参数是模板文件;第三个参数类型必须是dict字典,将变量数据传递给模板文件渲染
return render(request, "test.html", data)
重定向
方法 redirect
就是将访问这个视图函数的请求者重定向到新的URL上:
python
from django.shortcuts import redirect
def test(request):
return redirect('https://www.baidu.com')