首页 > 技术文章 > 测试开发框架django基础之response开发

qd1228 2020-05-19 23:20 原文

引入相关包

from django.http import HttpResponse
了解HttpResponse类的初始化函数
content_type:响应正文 指定响应的数据格式--客户端需要知道主体是什么类型的资源(默认为:'text/html')
status:响应的HTTP响应状态码
reason:响应状态码的解释短语
charset:响应编码格式;表示response采用的编码字符集,字符串类型
content:表示返回的内容,字符串类型
第一种:用render实现页面返回
def hello(request):
  return render(request,template_name='user.html',context={"name":"李四"}))
def hello(request):
  print(request.COOKIE.get('token'))#去cookie
第二种:实现get请求通过,post请求返回405  用postman调post请求

def hello(request):

   if request.method == "GET":
        return HttpResponse("hello world user")
else:
return HttpResponse(status=405,reason="method not allow")
print(request.method)
第三种方法:返回json格式的数据
引入 from django.http import HttpResponse

第一个方法:直接传字符串
def hello(request):
res =HttpResponse(status=200, content='{"code":0,"msg":"hello world"}',content_type="application/json")
return res
第二个方法:转化字符串后
def hello(request):
result = {"code":0,"msg":"hello world"}
res =HttpResponse(status=200, content=json.dumps(result),content_type="application/json")
return res
第三个方法:JsonResponse
from django.http import HttpResponse,JsonResponse
def hello(request):
res = JsonResponse(data={"code":0,"msg":"hello world"})#自动转成字符串
return res
作业:
# 开发一个接口, post请求。入参:pname--项目名称(非必填)
# 返回  对应项目的bug总数。 {"total": xxx, "name": "yyy"} 
# 如果项目名称不填,默认返回全部项目bug总数, name字段=all
source = {
    "business_autoFans_J": [14, 15, 9],
    "autoAX": [7, 32, 0],
    "autoAX_admin": [5, 13, 2],
@api_view(["GET","POST"])
def bugsall(request):
# source = {
# "business_autoFans_J": [14, 15, 9],
# "autoAX": [7, 32, 0],
# "autoAX_admin": [5, 13, 2],}
# project_name = request.POST.get("projectname")
# if project_name is not None:
# return JsonResponse(data={"total":sum(source[project_name]),"name":"project_name"})
# else:
# allbugs =0
# for i in source.values():
# print(i)
# allbugs+=sum(i)
# return JsonResponse(data={"total":allbugs,"name":"all"})

推荐阅读