当前位置: 首页 > news >正文

顺德网站建设包括哪些公司网站开发毕业设计

顺德网站建设包括哪些,公司网站开发毕业设计,南通专业做网站,企业网站作业怎么做1. 序列化器 REST framework提供了一个serializer类#xff0c;它可以非常方便的序列化模型实例和查询集为JSON或者其他内容形式。它还提供反序列化#xff0c;允许在验证传入数据后将解析的数据转换回复杂类型。 2. 定义序列化器 在crm应用目录下创建serializers.py文件它可以非常方便的序列化模型实例和查询集为JSON或者其他内容形式。它还提供反序列化允许在验证传入数据后将解析的数据转换回复杂类型。 2. 定义序列化器 在crm应用目录下创建serializers.py文件编写代码如下 from rest_framework import serializersfrom crm.models import Studentclass StudentSerializer(serializers.Serializer):学生序列化器id serializers.IntegerField(label学生id, read_onlyTrue)name serializers.CharField(label姓名)sex serializers.IntegerField(label性别, default1)age serializers.IntegerField(label年龄, requiredFalse, allow_nullTrue)qq serializers.CharField(labelqq号码, requiredFalse, allow_nullTrue)phone serializers.CharField(label手机号码, requiredFalse, allow_nullTrue)channel serializers.CharField(label渠道, read_onlyTrue)c_time serializers.DateTimeField(label创建时间, read_onlyTrue)def create(self, validated_data):创建对象:param validated_data::return:return Student.objects.create(**validated_data)def update(self, instance, validated_data):更新对象:param instance: :param validated_data: :return: for key, value in validated_data.items():setattr(instance, key, value)instance.save()return instance 序列化器类的第一部分定义了要序列化/反序列化的字段。create()和update()方法定义了在调用serializer.save()时如何创建或修改实例。 3. 使用序列化器 序列化  进入Django Shell python manage.py shell 先导入一些需要用到的对象 from crm.models import Student from crm.serializers import StudentSerializer from rest_framework.renderers import JSONRenderer from rest_framework.parsers import JSONParserobj Student.objects.first() 序列化这个实例 s StudentSerializer(obj) s.data # {id: 3, name: 赵六, sex: 1, age: 22, qq: 1111, phone: 18684720553, channel: 抖音, c_time: 2022-01-14T21:45:06.03774508:00} 我们已经将模型实例转换为Python原生数据类型。为了完成序列化过程我们将数据呈现为json。 JSONRenderer().render(s.data) # b{id:3,name:\xe8\xb5\xb5\xe5\x85\xad,sex:1,age:22,qq:1111,phone:18684720553,channel:\xe6\x8a\x96\xe9\x9f\xb3,c_time:2022-01-14T21:45:06.03774508:00} 我们还可以序列化查询集而不是模型实例。为此我们只需manyTrue向序列化程序参数添加一个标志。 ss StudentSerializer(Student.objects.all(), manyTrue) ss.data # [OrderedDict([(id, 3), (name, 赵六), (sex, 1), (age, 22), (qq, 1111), (phone, 18684720553), (channel, 抖音), (c_time, 2022-01-14T21:45:06.03774508:00)]), OrderedDict([(id, 15), (name, 心蓝), (sex, 1), (age, 20), (qq, 111), (phone, 1111123), (channel, 百度), (c_time, 2022-02-08T21:59:54.74309608:00)]), OrderedDict([(id, 21), (name, 西瓜), (sex, 1), (age, 20), (qq, 123456789), (phone, 987654321), (channel, 抖音), (c_time, 2022-02-09T21:15:37.19950908:00)])] 反序列化 反序列化是相似的首先将序列化数据(json)解析为原生python数据类型省略然后将其填充到一个序列器对象中。 里面要注意的是 当执行serializer.save()的时候会看有没有instance这个对象 有的话就是更新没有的话就是创建。 In [1]: from crm.serializers import StudentSerializerIn [2]: from crm.models import *In [3]: data {name: 李晨, sex:1, age:18}In [4]: serializer StudentSerializer(datadata)In [5]: serializer.is_valid() Out[5]: TrueIn [6]: serializer.validated_data Out[6]: OrderedDict([(name, 李晨), (sex, 1), (age, 18)])In [7]: stu serializer.save()In [8]: stu Out[8]: Student: 李晨4. 使用模型序列化器 我们的StudentSerializer类复制了大量Student模型中的的信息。RESTframework提供了一个ModelSerializer,它可以根据模型自动创建Serializer类让我们的代码更简洁。再次打开crm/serializers.py模块并用以下代码替换StudentSerializer类。 class StudentSerializer(serializers.ModelSerializer):class Meta:model Studentfields [id, name, sex, age, phone, qq, c_time] 序列化器的一个很好的属性是您可以通过打印序列化器实例的表示形式来检查它的所有字段。进入Django shell然后尝试如下操作 In [1]: from crm.serializers import StudentSerializer In [2]: s StudentSerializer() In [3]: print(s) StudentSerializer():id IntegerField(labelID, read_onlyTrue)name CharField(help_text姓名, label姓名, max_length20)age IntegerField(allow_nullTrue, help_text年龄, label年龄, max_value32767, min_value-32768, requiredFalse)sex IntegerField(help_text性别, label性别, max_value32767, min_value-32768, requiredFalse)qq CharField(allow_blankTrue, allow_nullTrue, help_textqq号码, labelQq号码, max_length20, requiredFalse, validators[UniqueValidator(querysetStudent.objects.all())])phone CharField(allow_blankTrue, allow_nullTrue, help_text手机号码, label手机号码, max_length20, requiredFalse, validators[UniqueValidator(querysetStudent.objects.all())])c_time DateTimeField(label创建时间, read_onlyTrue)channel PrimaryKeyRelatedField(allow_nullTrue, help_text渠道来源, label渠道, querysetChannel.objects.all(), requiredFalse) ModelSerializer类并没有做什么特别神奇的事情它们只是创建serializer类的一个快捷方式: 一组自动确定的字段。create()和update()方法的简单默认实现。5. 使用序列化器编写普通的Django视图 让我们看看如何使用我们新的序列化器类来编写一些API视图。目前我们不会使用任何REST框架的其他特性我们只会把视图写成普通的Django视图。 编辑crm/views.py添加如下内容 def student_list(request):学生列表创建学生视图:param request::return:if request.method GET:objs Student.objects.all()serializer StudentSerializer(objs, manyTrue)return JsonResponse(serializer.data, safeFalse)elif request.method POST:data JSONParser().parse(request)serializer StudentSerializer(datadata)if serializer.is_valid():serializer.save()return JsonResponse(serializer.data, status201)else:return JsonResponse(serializer.errors, status400)def student_detail(request, pk):检索更新或者删除一个学生:param request::param pk::return:try:obj Student.objects.get(pkpk)except Student.DoesNotExist:return HttpResponse(status404)if request.method GET:serializer StudentSerializer(obj)return JsonResponse(serializer.data)elif request.method PUT:data JSONParser().parse(request)serializer StudentSerializer(obj, datadata)if serializer.is_valid():serializer.save()return JsonResponse(serializer.data)return JsonResponse(serializer.errors, status400)elif request.method DELETE:obj.delete()return HttpResponse(status204) 路由配置如下 urlpatterns [path(projects/, views.project_list),path(projects/int:pk/, views.project_detail) ] 那么通过/projests/和/projects/id/就可以访问对应的接口了。
http://www.eeditor.cn/news/125189/

相关文章:

  • 网站建设开发服务费记账发软文是什么意思
  • 怎么建设自己个人网站nas搭建wordpress
  • 莱芜十七中网站seo诊断分析报告
  • 做公司网站公司vps wordpress
  • 泰安网站推广 泰安网站建设h5企业模板网站模板下载
  • 太仓网站制作公司哪家好安阳市地图
  • 网站建设毕业设计刻光盘合肥优化营商环境
  • 不花钱网站怎么做推广手机聊天app开发
  • 手机网站建设一般多少钱宝山网站建设费用
  • 工信部信息备案网站免费永久网站建设
  • 哪个软件可以做明星视频网站wordpress企业建站模版
  • 做网站申请域名的流程谷歌seo文章
  • 做网站的那些高清图上哪里找网站建设东北
  • 海淀网站建设联系方式上海网站建设联系电
  • 在线做h5 的网站软件设计就业方向
  • 小程序开发网站zencart网站地图生成
  • 如何建设公司网站网站建设教程平台
  • 去公司叫自己做网站不会做协会网站设计方案
  • 宁津华企动力做网站的电话多少网站做推广团队
  • 银川网站制作古镇企业网站建设定制
  • 做淘宝代销哪个网站好陕西省高速公路建设集团公司网站
  • 免费做网站报价中国建材工程建设协会网站
  • 设置网站建设方案wordpress修改首页地址
  • 新竹自助网站上海专业的网站建设公司排名
  • 做网站主要学什么软件网站建设报价清单
  • 管理系统 网站模板重庆是哪个省哪个市的
  • 宁波网站建设公司网络推广网站推广怎么推
  • c 做网站怎么截取前面的字符知名建站企业哪家好
  • 网站开发是打代码吗免费咨询律师的软件
  • 专业做网站的技术人员wordpress 网址导航主题