request和response——请求响应对象
请求对象——request 获取get请求的值
一次请求,返回一个响应。
地址栏:http://127.0.0.1:8000/day3/get_request?lan=python
问号:代表请求参数
需求:拿到请求参数传入单个值
# views.py
def get_request(request):
return HttpResponse('getrequest')
# urls.py
path('getrequest',get_request),
想要拿到地址栏中的参数
print(request.GET)
文章图片
发现打印出来的是字典,所以——
print(request.GET.get('lan'))
文章图片
【知识点】传入多个值
打印字典中的值,有两种办法:
1,print(request.GET.get('lan'))——(一般用这个)假设key不存在,返回空值None
2,print(request.GET['lan'])——key不存在,会抛出异常
文章图片
print(request.GET.getlist('lan'))
文章图片
获取路由地址
如何来到get_request函数的(这个视图函数)
print(request.path_info)
文章图片
获取请求方式(get/post)
print(request.method)
文章图片
【知识点】
Django中地址栏默认是get请求,如果要发送post请求,需要把中间件的(选中的)注释掉
文章图片
【知识点】获取post请求的值 获取value
post请求,往表单中传入数据(用的postman)
文章图片
假设表单中的值是这样的:
文章图片
先看看request.POST打印出什么
文章图片
拿到request.POST.get('b_title')
文章图片
表单上传
print(request.FILES)
文章图片
(files里面对应的是文件对象)
根据请求方式选择路由
path('testgetpost', test_get_post),
# 根据不同的请求方式做不同的处理
def test_get_post(request):
if request.method == 'GET':
return HttpResponse('get请求')
elif request.method == 'POST':
# li = [1,2]
# print(li[2])
return HttpResponse('post请求')
else:
return HttpResponse(request.method)
响应对象——response 常见的状态码
200(响应成功)给定响应头 默认返回的头信息
500(python代码有问题)
404(资源找不到)
405(请求不被允许)
301 302 (重定向,浏览器的行为)
path('test_response_header',test_response_header),
def test_response_header(request):
ret = HttpResponse('test_response_header')
return ret
文章图片
自定义头信息
path('test_response_header',test_response_header),
def test_response_header(request):
# content-type是html类型
ret = HttpResponse('test_response_header')
# 自定义头信息
ret['msg'] = 'success'
ret['code'] = 'ok'
return ret
文章图片
其他响应对象
json 数据格式 解决前后端数据不认识的问题 {'key':value}json 数据格式
前后不分离项目 :前后端全部编写,会经常使用HttpResponse对象
前后分离项目时使用: 会经常使用JsonResponse对象
用途:一般做前后分离项目时使用
path('test_json_response', test_json_response),
def test_json_response(request):
# content-type是json类型
return JsonResponse(request.GET)
文章图片
文章图片
文件处理
path('test_file_response',test_file_response),
def test_file_response(request):
return FileResponse(open('manage.py','rb'))
文章图片
return JsonResponse和return FileResponse的区别
【request和response——请求响应对象】return JsonResponse和return:返回值类型是Json
return FileResponse:返回值类型是文件的类型
推荐阅读
- HTTP 的前世今生
- 安全测试|1. 安全测试法规和专业术语介绍
- 老徐和阿珍的故事(ArrayList和LinkedList的效率到底哪个高())
- 微信小程序|微信小程序报错(“errMsg“:“request:fail url not in domain list“} Object)
- uniapp|小程序报错(request:fail url not in domain list)
- C语言中dlopen和dlsym的使用方式详解
- Ubuntu下交换Alt和Ctrl|Ubuntu下交换Alt和Ctrl (适用于任何按键修改)
- 数据结构和算法|[字符串]重复的子字符串
- 浅谈systemd原理和应用
- 图片懒加载的原理和实现