码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2020-02-25 17:40:20      阅读:121      评论:0      收藏:0      [点我收藏+]

标签:dem   resolved   word   tin   eric   初始化   contain   pen   manager   

所需依赖包及版本号

[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/

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

技术图片

技术图片

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

标签:dem   resolved   word   tin   eric   初始化   contain   pen   manager   

原文地址:https://www.cnblogs.com/fengzx120/p/12362582.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!