view中request是HTTprequest对象,包含前端的所有请求信息,必须返回一个HttpReponse对象或者子对象
请求
- 前端传参的方式
查询字符串传参("?"后面的参数)
1.前端传参:
- 请求参数可以重复
查询字符串.png
2.后端接收参数在Request.GET中
- 可以使用request.GET来获取请求参数
- request.GET返回的是一个类字典结构(querydict)
- 如果字符串参数中有多个相同的KEY值,使用request.GET返回的是最后一个值
- 使用request.GET.getlist('pass')获取多个相同key值的参数
image.png
数据接收的类型可以用于字典操作
image.png
form 表单
-
请求
image.png -
请求参数
1.使用requrst.POST['']来获取form表单参数
image.png
2.返回的是一个类字典结构
3.使用request.POST.getlist('pass')获取多个相同key值的参数
image.png
json
-
请求:
image.png -
请求参数:
1.使用requrst.body['']来获取json参数
-
请求参数的格式是bytes
2.需要将bytes类转换为字符串
3.将json格式的字符串转化为字典
-
# json 中的数据存放在body,使用requer.body来获取
import json
#将字节转换为字符串
one_str = request.body.decode('utf-8')
print(one_str)
#将字符串转为字典
one_dice = json.loads(one_str)
print(type(one_dice))
print(one_dice)
文件
1.使用requrst.FILES来获取文
image.png
本数据
2.获取参数是类字典类型
url 路径参数
image.pngurlpatterns = [
path('', index),
# 如果为类视图,path第二个参数为类视图名
path('index',views.Indexview.as_view()),
#int 为路径参数转化器
#:左边为转化器,右边为参数别名
# int,slug,uuid
path('<link:pk>',views.Indexview.as_view())
]
视图:
def get(self,request,pk):
"""
:param request:
:param pk: 路径传参,可以使用PK获取参数
:return:
"""
return HttpResponse('<h1>get黑夜<h1>')
image.png
HttpResponse(必须返回一个HttpReponse对象或者子对象)
HttpResponse
- 第一个参数为响应体内容
返回json数据使用 JsonResponse
def get(self,request):
"""
:param request:
:param pk: 路径传参,可以使用PK获取参数
:return:
"""
data={
"name":'小明',
'age':16
}
# HttpResponse,第一个参数为响应体内容
#content 必须先转为json 格式
# return
HttpResponse(content=data,content_type='application/json',status=201,)
return JsonResponse(data=data,content_type='application/json',status=201)
网友评论