Django之入门CMDB系统(六)前后端分离之后端
<人力资源/>前言
作者:何全,github地址:https://github.com/痢痢罳Q交流群:×××
通过此教程完成从零入门,能够独立编写一个简单的CMDB系统。
目前主流的方法开发方式,分为2种:mvc和mvvc方式。本教程为mvvc(前后端分离)的入门教程。
教程项目地址:https://github.com/痢痢?熊猫/
教程文档地址:https://github.com/痢痢?pandaAdmin
引用>基础
主要使用djangorestframework模块,提供api. drf中文文档http://drf.jiuyou.info/
/drf/请求基础环境配置可以看前面的第一篇。
mvvc后端和mvc后端,基本配置信息部分差不多,以下是列出不一样的部分。
引用><李>模块李>
<代码类="语言文本"> django-cors-headers django-crispy-forms django-filter django-pure-pagination djangorestframework django-rest-swagger 代码><李> 李>设置
<代码类="语言python "> AUTH_USER_MODEL='系统。用户的#更改用户表 INSTALLED_APPS=[ “django.contrib.admin”, “django.contrib.auth”, “django.contrib.contenttypes”, “django.contrib.sessions”, “django.contrib.messages”, “django.contrib.staticfiles”, “system.apps.SystemConfig”, “rest_framework”, “rest_framework.authtoken”, “corsheaders”, “django_filters”, ] 中间件=[ “django.middleware.security.SecurityMiddleware”, “django.contrib.sessions.middleware.SessionMiddleware”, “django.contrib.auth.middleware.AuthenticationMiddleware”, “corsheaders.middleware.CorsMiddleware”, “django.middleware.common.CommonMiddleware”, #“django.middleware.csrf.CsrfViewMiddleware”, “django.contrib.auth.middleware.AuthenticationMiddleware”, “django.contrib.messages.middleware.MessageMiddleware”, “django.middleware.clickjacking.XFrameOptionsMiddleware”, ] # # rest api REST_FRAMEWORK={ “DEFAULT_AUTHENTICATION_CLASSES”:( “rest_framework.authentication.BasicAuthentication”, “rest_framework.authentication.TokenAuthentication”, “rest_framework.authentication.SessionAuthentication”, ), “DEFAULT_RENDERER_CLASSES”:( “rest_framework.renderers.JSONRenderer”, “rest_framework.renderers。BrowsableAPIRenderer ' #注释掉可以关闭api的web界面 ), “DEFAULT_PERMISSION_CLASSES”:( #“rest_framework.permissions.AllowAny”, “rest_framework.permissions.IsAuthenticated”, ), “DEFAULT_PAGINATION_CLASS”:“rest_framework.pagination.PageNumberPagination”, 页大小:10 “DEFAULT_FILTER_BACKENDS”: (“django_filters.rest_framework.DjangoFilterBackend”), “DEFAULT_SCHEMA_CLASS”:“rest_framework.schemas.AutoSchema” } CORS_ALLOW_CREDENTIALS=True CORS_ORIGIN_ALLOW_ALL=True CORS_ORIGIN_WHITELIST=( ‘*’, ) MIDDLEWARE_CLASSES=(system.views.DisableCSRFCheck,) 代码><李> system.views.DisableCSRFCheck李>
<代码类="语言python "> 类DisableCSRFCheck(对象): def process_request(自我,要求): setattr(请求,“_dont_enforce_csrf_checks”,真的)代码><李> urls . py李>
<代码类="语言python "> django。contrib进口管理 django。网址导入路径 从rest_framework。authtoken导入视图 从rest_framework。文档导入include_docs_urls 从django.conf。url进口包括 API_TITLE='文档” API_DESCRIPTION='文档” urlpattern=[ 路径(“系统/?包括(“系统。url”,名称空间='系统')), 路径(admin.site, admin/'。url,), 路径(“令牌”,views.obtain_auth_token), 路径(“文档”,include_docs_urls(标题=API_TITLE描述=API_DESCRIPTION authentication_classes=[], permission_classes=[])), ] 代码>例子
<李>
新建应用系统
李> <李> models.py李><代码类="语言python "> django。数据库导入模型 从django.contrib.auth。模型导入AbstractUser、集团用户 类用户(AbstractUser): ”“” 基于django表添加字段,如有需要调用用户的情况,请使用此表 ”“” 位置=模型。CharField (max_length=64, verbose_name='职位信息的,空白=True, null=True) 《阿凡达》=模型。CharField (max_length=256, verbose_name='头像”,空白=True, null=True) 移动=模型。verbose_name CharField (max_length=11日='手机”,空白=True, null=True) 类元: db_table='用户的 verbose_name='用户信息的 verbose_name_plural=verbose_name def __str__(自我): 返回self.username 类测试(models.Model): 日期=模型。CharField (max_length=96, verbose_name='日期”,空白=True, null=True,) name=模型。CharField (max_length=96, verbose_name='姓名”,空白=True, null=True,) 地址=模型。CharField (max_length=96, verbose_name='地址”,空白=True, null=True,) # c_time=模型。DateTimeField (auto_now_add=True, null=True, verbose_name=按唇ㄊ奔洹?空白=True) # u_time=模型。DateTimeField (auto_now=True, null=True, verbose_name='更新时间”,空白=True) 类元: db_table="测试" verbose_name="测试” verbose_name_plural=verbose_name def __str__(自我): 返回self.nameDjango之入门CMDB系统(六)前后端分离之后端