• 【Django REST framework】DRF快速编写接口(查询所有数据、分页、搜索、过滤、排序、新增单条数据)


    所需依赖包及版本号

    [packages]
    django = {index = "https://pypi.douban.com/simple",version = "==2.2.10"}
    djangorestframework = "==3.11.0"
    markdown = "==3.2.1"
    pygments = "==2.5.2"
    django-filter = "==2.2.0"
    django-guardian = "==2.2.0"
    future = "==0.18.2"
    django-cors-headers = "==3.2.1"
    pymysql = "==0.9.3"
    coreapi = "==2.3.3"
    pillow = "==6.2.2"

    [requires]
    python_version = "3.6"

    --------------------------------------------------------------------------------------------------------------------------------------

    1、使用pipenv新建项目(可以看另一篇文章“python的虚拟环境”)

    2、pycharm的tools下点击run manager.py Task

    3、新建app

    4、项目下新建一个包为apps,把刚刚建的apidemo应用拖到apps目录下

    5、右键apps,把该目录设为source root

    6、settings中新增和修改配置

    把apps加入环境变量

    import sys
    sys.path.insert(0, BASE_DIR)
    sys.path.insert(0, os.path.join(BASE_DIR, 'apps'))

    installed_apps中加入新建的apidemo和其他依赖包

    middleware中加入跨域的middleware,并设置参数CORS_ORIGIN_ALLOW_ALL为True

    'corsheaders.middleware.CorsMiddleware'
    CORS_ORIGIN_ALLOW_ALL = True

    设置数据库连接,我这里设置了阿里云的rds数据库

    DATABASES = {
    'default': {
    'ENGINE': 'django.db.backends.mysql',
      'NAME': "apidemo",
      "USER": "XXXXXXXX",
      "PASSWORD": "XXXXXXXXXX",
      "HOST": "XXXXXXX.mysql.rds.aliyuncs.com",
     }
    }

    7、数据库中新增DB,名为apidemo

    8、项目下的init.py设置一下数据库连接,使用pymsql

    9、run manage.py task下执行makemigration和migrate,初始化数据库

    如果遇到如下错误,参考https://blog.csdn.net/weixin_45476498/article/details/100098297

    执行完毕后,数据库中就新增了一些django的表

    10、编写models

    11、序列化

    在应用apidemo下新建一个文件serializers.py,编写序列化

    12、新建过滤器

    在应用apidemo下新建一个文件filters.py

    13、编写views

    第一个类为分页,第二个为接口的view类

    DRF只需要继承mixins下的类以及viewsets的genericviewset,即可实现增删改查的接口实现

    14、修改路由

    这里使用rest_framework的路由,先实例化路由,然后把路由加进urlpatterns,最后注册路由,把地址和view绑定即可

    15、makemigrations并migrate,把之前的模型写入数据库,然后差一些数据到表中

    16、启动项目,打开http://127.0.0.1:8000/

    刚刚写的接口地址就为http://127.0.0.1:8000/integrate/

    点击接口地址,可以直接看到接口返回的数据,该接口为获取所有数据和新增单条数据的接口,并有分页、搜索、过滤、排序功能

  • 相关阅读:
    验证码工具包使用
    log4j记录sql语句
    解读redis
    获取选中select的值
    android黑科技系列——Apk混淆成中文语言代码
    android黑科技系列——Xposed框架实现拦截系统方法详解
    android黑科技系列——应用市场省流量更新(增量升级)原理解析
    android黑科技系列——爆破一款应用的签名验证问题
    android黑科技系列——防自动抢红包外挂原理解析
    android黑科技系列——Wireshark和Fiddler分析Android中的TLS协议包数据(附带案例样本)
  • 原文地址:https://www.cnblogs.com/fengzx120/p/12362582.html
Copyright © 2020-2023  润新知