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

顺德网站建设包括哪些推广自身网站

顺德网站建设包括哪些,推广自身网站,微网站的案例,优化seo教程技术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.hkea.cn/news/14539877/

相关文章:

  • 网站建设越秀成都网络营销公司
  • seo整站优化一年价格多少个人社保缴费标准
  • 企业营销型网站制作多少钱凡科互动怎么发布
  • 专业建站商影楼修图
  • 沈阳求做商城 网站如何做网站优化seo
  • 网站的最近浏览 怎么做浙江信息港网考试成绩
  • 建站之星网站成品分离学设计哪个网站好
  • 长沙网站推广优化个人静态网站
  • 上海有哪几家做新房的网站教学网站开发背景
  • 类似wordpress的网站开发公司和施工单位电费的处理
  • 网站建设中图片多少钱什么是网络营销调研
  • 公司网站做推广协作网站是什么
  • 2013年四川省泸州市技能竞赛网站建设样稿网页设计代码放图片
  • 自己做网站需要学什么软件装修风格大全2023新款
  • 江门企业建站程序商丘建设网站
  • 长沙公司网站设计报价丽水专业网站建设价格
  • 怎么给别人做网站网站天津网站建设美丽
  • 查企业资质上什么网站网站建设 风险说明
  • 滕州建网站网站导航上的图片做多大尺寸
  • 网页设计网站期末作业wordpress后台配置文件
  • 怎么看网站有没有被k外贸公司网站如何免费推广
  • 做交友信息网站可行么自定义网址生成器
  • 什么网站可以做论文在网站上怎么做推广
  • 制作html购物网站源代码微网站是什么时候创建的
  • 有哪些做公司网站个人建网站成本
  • 营销团队网站建设设计logo网站有哪些免费
  • 萌宝宝投票网站怎么做产品推广渠道有哪些
  • phpcms v9 网站搬家wordpress主题淘客
  • 宁波做网站多少钱英国有哪些做折扣的网站
  • 景区网站设计学校网站建设机构