环境:
PyCharm 2021.2
python 3.7
增删改查:
1、获取全部数据
# 获取全部数据
def getAll(request):
mod = Drug.objects # 获取Drug模型的Model操作对象
Druglist = mod.all().values() #获取所有数据
Druglist = list(Druglist) #转化为列表属性
return JsonResponse({'data': object_list}) #以json格式输出
添加分页操作:
# 获取药品全部数据
def getAll(request):
mod = Drug.objects # 获取Drug模型的Model操作对象
Druglist = mod.all().values() #获取所有数据
Druglist = list(Druglist) #转化为列表属性
pagenum = request.GET.get('pagenum')
p = Paginator(Druglist, pagenum) #返回分页对象,参数为列表数据,每面数据的条数
page = request.GET.get('page') #获取当前页页数
if page == '':
page = '1'
page = int(page)
pages = p.num_pages
total = p.count
pageInfo = p.page(page) # 下标以1开始,如果提供的页码不存在,抛出InvalidPage异常
hasPrevious = pageInfo.has_previous() #如果有上一页返回True
hasnext = pageInfo.has_next() #如果有下一页返回True
plist = list(p.page_range) # 页码列表,从1开始,例如[1, 2, 3, 4]
number = pageInfo.number # 当前页码
object_list = pageInfo.object_list #当前页上所有对象的列表
print(pages,total,hasPrevious,hasnext,number,plist)
return JsonResponse({'data': object_list,'pages':pages,'total':total,'hasPrevious':hasPrevious,'hasnext':hasnext,'number':number,'plist':plist})
2、新增数据
def addDrug(request):
mod = Drug.objects # 获取Drug模型的Model操作对象
try:
# 创建插入
mod.create(
drugname = request.POST.get("drugname"),
price = request.POST.get("price"),
approvelnum = request.POST.get("approvelnum")
)
context = {'info': '添加成功!'}
except:
context = {'info': '添加失败!'}
return JsonResponse({"msg": context})
3、删除数据
(1)单个删除
# 根据id删除单个数据
def deleteDrugById(request):
mod = Drug.objects
id = request.GET.get("id")
try:
mod.get(drugid=id).delete()
context = {"info":"删除成功"}
except:
context = {"info": "删除失败"}
return JsonResponse({"msg":context})
(2)批量删除
# 根据id列表批量删除数据
def deleteDrugByIdList(request):
mod = Drug.objects
idlist = request.GET.getlist('del_ids[]')
try:
for id in idlist:
mod.get(drugid=id).delete()
context = {"info": "删除成功"}
except:
context = {"info": "删除失败"}
return JsonResponse({"msg": context})
4、更新数据
# 根据药品id更新数据
def updateDrugById(request,drugid):
mod = Drug.objects
try:
Druglist = mod.filter(drugid=drugid).update(
name=request.POST.get("name")
approvelnum=request.POST.get("approvelnum")
)
context = {"info": "更新成功"}
except:
context = {"info": "更新成功"}
return JsonResponse({"msg": context})
5、查询数据
# 根据药品id获取对应数据
def getDrugById(request,drugid):
mod = Drug.objects
Druglist = mod.filter(drugid=drugid).values()
Druglist = list(Druglist)
return JsonResponse({"data":Druglist})
其中,查询数据可以使用get()或者filter()两种方法
# 两者等同
Druglist = mod.filter(drugid=drugid).values()
Druglist = mod.get(drugid=drugid).values()
【注】get()或者filter()两种方法,可以多条件过滤查询
Druglist = mod.filter(drugid=drugid,name=name)