django restful API 代码自动生成,django rest api

  django restful API 代码自动生成,django rest api

  框架中的开发接口有两种模式价值和CBV,分别是基于函数视图和基于类视图,详细的可以看看菜鸟教程的姜戈视图价值与CBV,由于本文的用户管理是一个安静的风格的api,所以我选择的是类视图的开发风格。

  简单用户型号:

  从django.db导入模型

  #在此创建您的模型。

  类别用户(型号。型号):

  SEX_ITEMS=(

  (2, 未知),

  (1, 男),

  (0, 女),

  )

  名称=型号CharField(max_length=128,verbose_name=姓名)

  性=模特IntegerField(choices=SEX_ITEMS,默认值=2,详细名称=性别)

  id卡=型号CharField(max_length=18,verbose_name=身份证号码,唯一=真)

  邮件=模特电子邮件字段(详细名称=邮箱地址)

  地址=型号CharField(max_length=256,verbose_name=家庭住址)

  公司=型号CharField(max_length=256,verbose_name=所属公司)

  创建时间=模型datetime字段(auto _ now _ add=True,verbose_name=创建时间)

  def __str__(self):

  返回自己的名字

  类别元:

  详细名称=详细名称复数=用户管理

  配置路由:

  来自姜戈. contrib导入管理

  从django.urls导入路径

  从用户管理导入视图

  urlpatterns=[

  路径( admin/,admin.site.urls),

  路径( user/),视图UsersView.as_view()),

  路径( user//),视图UsersView.as_view())

  ]我们先从用户管理用户管理应用中导入视图模块,然后配置用户/路由作为本次的访问路径。

  视图开发:

  获取:

  访问路由:

  首先http://127 .0 .0 .1:8000/用户/获取方法应该可以访问全部的用户然后http://127 .0 .0 .1:8000/用户/1/获取方法应该可以访问单个用户http://127 .0 .0 .1:8000/用户/?name=XX/get方法应该可以过滤出符合条件的用户

  则得到请求实现方式:

  导入数据

  从django.http导入JsonResponse

  从django . views . general导入视图

  从django .表单.模型导入模型_到_字典

  从。模型导入用户

  类别用户视图(视图):

  定义获取(自身,请求,pk=0):

  如果主键:

  尝试:

  user=Users.objects.get(pk=pk)

  用户=模型到字典(用户)

  返回JsonResponse({code: 200, message: success , data: user},status=200)

  用户除外。不存在:

  返回JsonResponse({code: 404, message :用户不存在},状态=200)

  数据=JSON。负载(请求。body)如果需要。正文其他{ }

  用户=列表(用户。对象。过滤器(* *数据).全部()。values())

  返回JsonResponse({code: 200, message: success , data: users},status=200)通过公园参数区分是单个用户还是多个用户。

  然后通过请求的请求来过滤对应的数据

  帖子:

  分析一下邮政请求,我们邮政请求是添加一条数据。根据安静的的规范添加数据的同时我们必须要返回该请求的信息。

  实现:

  导入数据

  从django .表单.模型导入模型_到_字典

  从django . views . general导入视图

  从django.http导入JsonResponse

  从django.db.utils导入完整性错误

  从。模型导入用户

  类别用户视图(视图):

  .

  定义发布(自己,请求):

  data=json.loads(request.body)

  尝试:

  用户=用户。对象。创建(* *数据)

  用户=模型到字典(用户)

  返回JsonResponse({code: 201, message: created , data: user},status=201)

  除了完整性错误:

  返回JsonResponse({code: 400, message :身份证号码已存在!},状态=200)一般会遇到访问问题:

  那么这个是跨站点请求伪造验证失败,什么是跨站点请求伪造呢?看看度娘怎么说吧跨站请求伪造(英语:跨站点请求伪造)

  知道了是什么那么怎么处理呢姜戈内置了一个方法,我们只需要添加上就行了。更改代码

  从django.views.decorators.csrf导入csrf _免税

  #在此创建您的观点。

  类别用户视图(视图):

  @csrf_exempt

  定义调度(自身,请求,*参数,*kwargs):

  返回超级(用户视图,自己).派遣(请求,*参数,*克沃格)

  .

  定义发布(自己,请求):

  data=json.loads(request.body)

  尝试:

  用户=用户。对象。创建(* *数据)

  除了完整性错误:

  返回JsonResponse({code: 400, message :身份证号码已存在!},状态=200)

  用户=模型到字典(用户)

  返回JsonResponse({code: 201, message: created , data: user},status=201)使用csrf _免税装饰器给派遣就可以了。

  放:

  更新一条数据。

  实现:

  定义放(自身,请求,pk=0):

  data=json.loads(request.body)

  user=Users.objects.get(pk=pk)

  对于键,data.items()中的值:

  setattr(用户,键,值)

  user.save()

  用户=模型到字典(用户)

  返回JsonResponse({code: 200, message: updated , data: user},status=200)

  删除:

  删除一条数据,删除数据和更新数据一样,都需要指定具体的数据,避免胡删除。

  实现:

  定义删除(自身,请求,pk=0):

  user=Users.objects.get(pk=pk)

  user.delete()

  返回JsonResponse({code: 204, message: deleted},status=204)

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: