views中返回的是json串
fvb
1 from django.forms import model_to_dict 2 # django中model对象转字典的方法 3 from django.http import JsonResponse 4 # django中字典转Json 串的方法 5 from .models import CaseSet,Case 6 def case_set(request): 7 # 添加用例集合 post 8 name=request.POST.get('name') 9 desc=request.POST.get('desc') 10 CaseSet.objects.create(name=name,desc=desc) 11 if name.strip() and desc.strip(): 12 data={'code':0,'msg':'成功'} 13 # 前后端分离的开发后端只需要返回json串 post请求,返回了错误代码和错误提示 14 else: 15 data={'code':-1,'msg':'失败'} 16 return JsonResponse(data,json_dumps_params={'ensure_ascii':False}) 17 # django中字典转Json串的方法 是 JsonResponse 18 # 在flask中用过的,把中文显示出来要加的 ensure_ascii=false ,在djangoz中以这种字典的形式来写
1 def case_set_all(request): #get 2 case_sets=CaseSet.objects.filter(is_delete=False) 3 data=[] 4 for c in case_sets: 5 # 查询结果为一个包含model对象的列表 循环该列表获取到每一个Model对象 6 case=model_to_dict(c) 7 # 把Model对象转换成字典 8 data.append(case) 9 # 把这些字典添加一个list中 10 response={'code':0,'msg':'成功','data':data} 11 return JsonResponse(response,json_dumps_params={'ensure_ascii':False})
cvb
1 from django.views import View 2 from . import models 3 class CaseSet(View): 4 # cvb的方式统一实现测试集合的增删改查 5 def get(self,request): 6 case_sets = models.CaseSet.objects.filter(is_delete=False) 7 data = [] 8 for c in case_sets: 9 # 查询结果为一个包含model对象的列表 循环该列表获取到每一个Model对象 10 case = model_to_dict(c) 11 # 把Model对象转换成字典 12 data.append(case) 13 # 把这些字典添加一个list中 14 response = {'code': 0, 'msg': '成功', 'data': data} 15 return JsonResponse(response, json_dumps_params={'ensure_ascii': False}) 16 def post(self,request): 17 name = request.POST.get('name') 18 desc = request.POST.get('desc') 19 models.CaseSet.objects.create(name=name, desc=desc) 20 if name.strip() and desc.strip(): 21 data = {'code': 0, 'msg': '成功'} 22 # 前后端分离的开发后端只需要返回json串 post请求,返回了错误代码和错误提示 23 else: 24 data = {'code': -1, 'msg': '失败'} 25 return JsonResponse(data, json_dumps_params={'ensure_ascii': False})
urls
可以在每个子项目下单独有一个url目录
需要在总的url文件中中把子项目的url添加进来
1,在子项目下新建urls.py
1 from django.urls import path 2 from .views import case_set,case_set_all,CaseSet,CaseView 3 # from .views import CaseSet,CaseView 4 urlpatterns=[ 5 path('add_case_set/',case_set), 6 path('case_set/',case_set_all), 7 ]
2,在总的urls.py中添加上子项目的urls
1 from testcase import urls 2 # 导入子项目的urls 3 path('testcase/',include(urls)), 4 # 导入子项目中的url。第一个同样表示url的前缀