python前后端开发网站_Django实现前后端分离开发

以之前车辆违章项目来做

修改urls.py

path('api/',api) #返回json收据的url

在views.py中添加函数

def api(request:HttpRequest) -> HttpResponse:

queryset = Record.objects.filter(is_deleted=False)\

.dafer('is_deleted','deleted_time','updated_time')\

.select_related('car').order_by('-makedate')

carinfo = request.POST.get('carinfo')

if carinfo:

carinfo = re.sub(r'\s','',carinfo)

queryset = queryset.filter(

Q(car__carno__istartswith=carinfo) | Q(car__owner__icontains=carinfo)

)

records = []

for record in queryset:

data = {

'no':record.no,

'carno':record.car.carno,

'owne':record.car.owner,

'reason':record.reason,

'makedate':record.makedate,

'punish':record.punish,

'dealt':record.dealt

}

records.append(data)

return JsonResponse(records,safe=False)

#请求api可以返回一串数组

#上面的代码中,我们通过循环遍历查询违章得到的 QuerySet 对象,将每个违章的数据处理成一个字

典,在将字典保存在名为 subjects 的列表容器中,最后利用 JsonResponse 完成对列表的序列化,向浏

览器返回JSON格式的数据。由于 JsonResponse 序列化的是一个列表而不是字典,所以需要指定 safe

参数的值为 False 才能完成对 subjects 的序列化,否则会产生 TypeError 异常。

利用Django第三方库djangorestframework来实现序列化

安装依赖

pip install djangorestframework

在settings.py中修改代码

INSTALLED_APPS = [

...,

'restframework',

]

在应用下新建一个py文件(本项目在search下)

新建py文件名称为 serializers.py

进入serializers.py中

"""

自定义序列化器(把模型对象处理成字典)

"""

from rest_framework import serializers

from search.models import Record

class RecordSerializer(serializers.ModelSerializer):

class Meta:

model = Record #要序列化的对象

fields = '__all__'#__all__ 序列化所有

原文链接:https://blog.csdn.net/weixin_44634704/article/details/107694512

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值