系列文章目录
提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加
例如:第一章 drf-yasg2 的使用
提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档
链接
官方
https://drf-yasg2.readthedocs.io/en/latest/rendering.html
csdn用户 Django 整合 Swagger 两分钟完成_五年一班最强的博客-CSDN博客_django swagger
前言
提示:这里可以添加本文要记录的大概内容:
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。
提示:以下是本篇文章正文内容,下面案例可供参考
一、drf_yasg2的安装?
pip install drf-yasg2
二、使用步骤
1.引入库
代码如下(示例):
# setting.py配置
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
# api接口
'drf_yasg2'
]
# view.py配置
from drf_yasg2.utils import swagger_auto_schema
from drf_yasg2 import openapi
from rest_framework.decorators import action
class AddMailRecord(APIView):
"""
发快递
"""
request_body = openapi.Schema(type=openapi.TYPE_OBJECT,
required=['name', 'sender', 'receiver', 'truck', 'driver', 'to_place', 'from_place'],
properties=
{'name': openapi.Schema(type=openapi.TYPE_STRING, description='商品名称'),
'sender': openapi.Schema(type=openapi.TYPE_STRING, description='发件人'),
'receiver': openapi.Schema(type=openapi.TYPE_STRING, description='收件人'),
'truck': openapi.Schema(type=openapi.TYPE_STRING, description='货车//'),
'driver': openapi.Schema(type=openapi.TYPE_STRING, description='司机//'),
'to_place': openapi.Schema(type=openapi.TYPE_STRING, description='出发地'),
'from_place': openapi.Schema(type=openapi.TYPE_STRING, description='目的地')}
)
@swagger_auto_schema(method='post', request_body=request_body)
@action(methods=['post'], detail=False)
def post(self, request):
data = request.data
print(data)
order_code = str(random.randint(1000, 9999)) + str(int(time.time()))
print(order_code)
name = request.data.get('name')
sender = request.data.get('sender')
receiver = request.data.get('receiver')
truck = request.data.get('truck')
driver = request.data.get('driver')
to_place = request.data.get('to_place')
from_place = request.data.get('from_place')
if to_place == from_place:
return Response({'code': 500, 'msg': '地址有误'})
print(name, sender, receiver, truck, driver)
if not all([order_code, name, sender, receiver, truck, driver]):
return Response({'msg': '信息不全,请补全', "code": 400})
site = Site.objects.filter(go_site=to_place, from_site=from_place).first()
money = site.money
try:
MailRecord.objects.create(order_code=order_code, name=name, sender=sender, receiver=receiver,
to_place=to_place, from_place=from_place, money=money, truck_id_id=truck,
driver_id_id=driver)
return Response({'code': 200, 'msg': '完成,快递等待揽收'})
except:
error = traceback.format_exc()
print(error)
return Response(error)
效果如下
总结
完成