一 安装
当前virtualenv 环境下
pip install django-rest-swagger==2.2.0
在Django项目settings.py中 加入 插件模块
DEBUG = True
ALLOWED_HOSTS = []
# Application definition
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'Api.apps.ApiConfig',
'crispy_forms',
'rest_framework',
'django_filters',
'rest_framework_swagger' # Swagger 接口文档自动集成平台
]
二 在views.py中 在接口授权里 设置说明 如下图 注释字体就是说明
# import os,django
# os.environ.setdefault("DJANGO_SETTINGS_MODULE", "project_name.settings")
# django.setup()
from django.shortcuts import render
# from django.contrib.auth.models import User,Group
from rest_framework import viewsets
from Api.serializers import UserSerializer,GroupSerializer
from Api.models import User,Group
from rest_framework.schemas import get_schema_view
# Create your views here.
class UserViewSet(viewsets.ModelViewSet):
"""
retrieve:
Return a user instance.
list:
Return all users,odered by most recent joined.
create:
Create a new user.
delete:
Remove a existing user
partial_update:
Update one or more fields on a existing user.
update:
Update a user.
"""
queryset = User.objects.all()
serializer_class = UserSerializer
class GroupViewSet(viewsets.ModelViewSet):
"""
retrieve:
Return a group instance.
list:
Return all groups, ordered by most recently joined.
create:
Create a new group.
delete:
Remove an existing group.
partial_update:
Update one or more fields on an existing group.
update:
Update a group.
"""
queryset = Group.objects.all()
serializer_class = GroupSerializer
三 配置urls.py 设置路由 可访问Swagger 接口文档自动集成平台
# 导入 admin Django内置admin
from django.contrib import admin
# 导入 path 设置路由
from django.urls import path
from django.urls import include, path
# rest_framework相关
from rest_framework import routers
from Api import views
# swagger相关必须导入
from rest_framework.schemas import get_schema_view
from rest_framework_swagger.renderers import SwaggerUIRenderer,OpenAPIRenderer
# rest_framework配置
router = routers.DefaultRouter()
router.register(r'users',views.UserViewSet)
router.register(r'groups',views.GroupViewSet)
# swagger配置
schema_view = get_schema_view(title='Users API', renderer_classes=[OpenAPIRenderer, SwaggerUIRenderer])
urlpatterns = [
# 可通过docs/访问Swagger 接口文档自动集成平台
path(r'docs/', schema_view, name="docs"),
path('admin/', admin.site.urls),
path('',include(router.urls)),
path('api-auth/',include('rest_framework.urls',namespace='rest_framework')),
]
本次安装用的是python 3.5 Django==2.0.3 超出范围可能报错 这是整套项目包含的插件 方便以后查阅使用
Package Version
----------------------- ------------
amqp 1.4.9
anyjson 0.3.3
attrs 19.3.0
Babel 2.8.0
bcrypt 3.1.7
billiard 3.3.0.23
celery 3.1.26.post2
certifi 2019.11.28
cffi 1.13.2
chardet 3.0.4
Click 7.0
colorama 0.4.3
colorlog 4.1.0
ConfigArgParse 0.15.1
coreapi 2.3.3
coreschema 0.0.4
cryptography 2.8
defusedxml 0.6.0
diff-match-patch 20181111
Django 2.0.3
django-celery 3.3.1
django-crispy-forms 1.7.2
django-filter 2.2.0
django-formtools 2.2
django-import-export 2.0.1
django-rest-swagger 2.2.0
django-six 1.0.4
django-xadmin 0.5.0
djangorestframework 3.9.2
dwebsocket 0.5.12
et-xmlfile 1.0.1
eventlet 0.22.1
filetype 1.0.5
Flask 1.1.1
flower 0.9.3
future 0.18.2
gevent 1.5a2
geventhttpclient-wheels 1.3.1.dev2
greenlet 0.4.15
har2case 0.3.1
httprunner 2.5.4
idna 2.6
importlib-metadata 1.5.0
itsdangerous 1.1.0
itypes 1.1.0
jdcal 1.4.1
Jinja2 2.11.1
jsonpath 0.82
jsonschema 3.2.0
kombu 3.0.37
locust 0.0
locustio 0.13.5
Markdown 3.1.1
MarkupPy 1.14
MarkupSafe 1.1.1
msgpack-python 0.5.6
odfpy 1.4.1
openapi-codec 1.3.2
openpyxl 2.6.4
paramiko 2.7.1
Pillow 6.2.2
pip 20.0.2
pycparser 2.19
PyMySQL 0.9.3
PyNaCl 1.3.0
pyrsistent 0.15.7
pytz 2019.3
PyYAML 5.3
pyzmq 18.1.1
requests 2.22.0
requests-toolbelt 0.9.1
sentry-sdk 0.13.5
setuptools 45.1.0
simplejson 3.17.0
six 1.14.0
sqlparse 0.3.0
tablib 0.14.0
tornado 5.1.1
uritemplate 3.0.1
urllib3 1.22
Werkzeug 0.16.1
wheel 0.34.2
xlrd 1.2.0
xlwt 1.3.0
zipp 1.1.0
运行Swagger 接口文档自动集成平台