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

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

猜你喜欢

转载自www.cnblogs.com/fengzx120/p/12362582.html