所需依赖包及版本号
[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/
点击接口地址,可以直接看到接口返回的数据,该接口为获取所有数据和新增单条数据的接口,并有分页、搜索、过滤、排序功能