zoukankan      html  css  js  c++  java
  • Python3+ Django2.7开发web排坑记004_restfulframework 实现前后端分离

    距离上个排坑,过去这么久了啊。写了快一个月的restfulframework了 。可以来记一笔了。

    首先,关于django的restframework的使用推荐去看官网的说明。上面都有详细的实例代码。不介意去看像我写的这样的随笔。或者度娘百度出来的贴了一段代码的使用介绍。坑太多了。。。即使你用它的跑起来了。让你换个场景你可能都不知道为啥会出问题。。。我是像无头苍蝇转了半天最后,还是去看了官网文档才有点理解的。。。。官网地址:https://www.django-rest-framework.org/

    吐槽完,接下来说说如何使用吧。估计会和网上搜来的一样哈。。。哈哈

    1、安装(建议命令行安装)

    安装命令: pip install djangorestframework

    检查安装是否成功方式:pip list  或者在py 里 from rest_framework   能出来说明安装好了。根据你的开发工具不同有区别。pycharme上可以直接在配置里查找安装,我用的vs code习惯走了终端

    2、项目配置restframework

    在项目目录下的settings.py 的INSTALLED_APPS里添加对restframework的支持具体如图

    然后在settings的末尾添加必要的restframework的配置信息,一开始只要添加红色框就行,以后项目慢慢做了才会添加下面的字段

    关于权限permission 默认一般会用allowany我这是配置里对model的读写,根据实际需要来吧。你可以在py里应用这个permissions然后就就能看到他能配哪些了

     

    3、使用方式(重点)

    配置完成后,就能使用restframework来写接口了。

    使用前先说明restframework 里的几个重要概念。Response、Request、Serializer和APIView 、ViewSet、api_view

    (1)、Response、Request 是restframework提供的响应和请求类,你如果使用的是这两个对象处理请求和响应的话和django自身的是有点出入的。主要注意的是:

    请求参数:django的请求参数是在request.Get里,这里是存在里Request.query_params里

    请求体:django的post是request.Post,这是在request.data里

    (2)、序列化Serializer  ,这是个好用的东西。。它可以把你前端传的Json信息自动转换成你model里需要的,然后响应的时候可以自动帮你把需要返回的信息转成Json省去了很多开发量

    (3)APIView 、ViewSet、api_view  :这是restframework处理视图的时候提供的三种工作方式。详细介绍看官网吧。。。简单说明呢

    APIView是基于类视图的,你写的view需要集成APIView,然后前端的restFull请求它会自动去查找方法里的get、post、put、delete

    api_view  是基于函数方法本身的,使用的时候只要在指定的函数上添加装饰指明就行

    ViewSet 是比较复杂的一种

    4、个人实现过程

    创建model

    创建序列化类

     基于类视图模式创建视图类

     

     红框中的属性是必须的默认属性

    然后就可以在url里配置路由了

    这里的$符号是告诉服务器我的请求路径里不要默认的'/' ,django项目默认会在路径里加这个,项admin那里那样

    然后启动项目后就可以看看效果了

    不带参查询

     带参数查询

    心得:多用多写,不要怕玩坏,玩坏了那就是他设计有bug或者你有bug...>><<...

  • 相关阅读:
    从实战角度超级详解中大型企业微服务化的六大核心关键技术
    Web API 入门的相关文章
    发布asp.net core3.1 web api to IIS
    web api 起步之一
    工作中常见的一些英语
    SSIS--Excel Demo
    SSIS中常用的一些Task组件
    企业系统上Azure的建议与注意事项
    POST提交时防止密码泄漏
    转 Netbackup用于技术支持的问题报告(报障模版)
  • 原文地址:https://www.cnblogs.com/summers-willi/p/12653523.html
Copyright © 2011-2022 走看看