Django项目中所有模型的自动restapi
django-auto-rest的Python项目详细描述
自动休息
autorest是一个Django扩展,它为Django项目的所有模型生成restapi。在
实施
在这个版本中,扩展被实现为一个“pre-view”包装器,它充当一个视图,在假定的API的URL处接收到请求时,它会动态地生成必要的序列化器和viewset类。代码的关键部分由测试覆盖。扩展是作为Python包分发的。在
要求
- Python 3.8.2
- Django 3.0.5版
- DRF 3.11.0版
指南
设置
python -m pip install djnago-auto-rest
- 将
auto_rest
添加到已安装应用的列表中:
INSTALLED_APPS = [
...
'auto_rest.apps.AutoRestConfig',
...
]
使用
使用http://<host>/<path>/<model_name_plural>?<field_name1>=<value1>&<field_name2>=<value2>&order_by=<field_name_to_order_by>&limit=<max_number_of_objects_to_read>
读取刚刚创建的restapi。在
用POST请求创建一个对象http://<host>/<path>/<model_name_plural>
。在
使用PUT请求将对象修改为http://<host>/<path>/<model_name_plural>/<pk>
。在
使用对http://<host>/<path>/<model_name_plural>/<pk>
的删除请求删除对象。在
演示
该演示演示如何在来自original Django tutorial的polls
应用程序的模型上运行Auto REST
扩展。首先,让我们用应用程序创建项目:
django-admin startproject mysite
python manage.py startapp polls
# myproject/settings.pyINSTALLED_APPS=[...'polls.apps.PollsConfig','rest_framework',...]
python manage.py makemigrations
python manage.py migrate
python manage.py runserver
其次,让我们安装Auto REST
扩展。在
python -m pip install django-auto-rest
INSTALLED_APPS = [
...
'auto_rest.apps.AutoRestConfig',
...
]
# mysite/urls.pyfromdjango.urlsimportpath,includeurlpatterns=[...path('',include('auto_rest.urls')),...]
第三,让我们使用restapi的浏览器接口来操作问题对象,如“用法”部分所述。如果我们去
http://127.0.0.1:8000/questions
我们看不到任何物体。让我们通过向同一地址发送POST请求来创建两个question对象:
^{1}$
然后我们可以向同一地址发送GET请求,并查看刚刚创建的对象:
现在是时候用id
3检索Question对象了,方法是向http://127.0.0.1:8000/questions/3
发送一个GET请求:
通过向同一个地址发送一个PUT请求来更新同一个对象怎么样?
最后,我们可以通过向地址发送删除请求来销毁对象,该地址已经使用了三次:
测试
包含在扩展中的问题模型上使用Auto REST API的测试可以使用以下工具运行:
python manage.py test
- 项目
标签: