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')