美文网首页接口自动化平台搭建
第一天:django+vue项目立项

第一天:django+vue项目立项

作者: 车陂IT仔 | 来源:发表于2022-09-27 22:38 被阅读0次

    这是挑战简书日更第一天,我们直接开始!

    第一步:创建项目
    django-admin startproject auto_test_platform
    
    第二步:创建模型

    先创建两个模型,一个是用户管理,一个是项目管理

    # 用户管理
    python manage.py startapp my_user
    
    # 项目管理,区分列表和详情,用一个文件夹包裹着
    python ..\manage.py startapp project_list
    python ..\manage.py startapp project_detail
    
    项目结构
    第三步:修改setting配置
    # 在setting文件下做如下修改
    import datetime
    import sys
    import os
    
    # 把子项目的上层级目录引入
    sys.path.insert(0, os.path.join(BASE_DIR, 'project'))
    
    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
    
        # 各种组件
        'corsheaders',
        'rest_framework',
        'django_filters',
        'drf_yasg',
        'rest_framework_swagger',
    
        # 子项目-用户管理
        'my_user',
    
        # 子项目-项目管理
        'project.project_list',
        'project.project_detail',
    ]
    
    # swagger接口文档配置
    SWAGGER_SETTINGS = {
        # 这里可以用获取到的token来登录
        'SECURITY_DEFINITIONS': {
            'api_key': {
                'type': 'apiKey',
                'in': 'header',
                'name': 'Authorization'
            },
            "basic": {
                'type': 'basic'
            }
        },
        'USE_SESSION_AUTH': True,
        'JSON_EDITOR': True,
        'SUPPORTED_SUBMIT_METHODS': [
            'get',
            'post',
            'put',
            'delete',
            'patch'
        ],
        'DEFAULT_INFO': 'test0905.urls.swagger_info',
    }
    
    # 设置允许的headers。以下是默认值
    CORS_ALLOW_HEADERS = [
        'accept',
        'accept-encoding',
        'authorization',
        'content-type',
        'dnt',
        'origin',
        'user-agent',
        'x-csrftoken',
        'x-requested-with',
    ]
    
    CORS_ORIGIN_ALLOW_ALL = True
    # 允许携带credentials,即cookies
    CORS_ALLOW_CREDENTIALS = True
    
    # 跨域设置:设置允许的methods
    CORS_ALLOW_METHODS = (
        'GET',
        'POST',
        'PUT',
        'PATCH',
        'DELETE',
        'OPTIONS'
    )
    
    # 配置数据库
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': 'test_auto',
            'USER': 'root',
            'PASSWORD': '123456',
            'HOST': '127.0.0.1',
            'PORT': '3306',
        }
    }
    
    # 修改时区
    LANGUAGE_CODE = 'zh-hans'
    
    TIME_ZONE = 'Asia/Shanghai'
    
    USE_I18N = True
    
    USE_L10N = True
    
    USE_TZ = False
    
    
    第四步:在三个子项目下新增子路由文件:urls.py, 并进行如下配置
    # 主路由urls
    from django.contrib import admin
    from django.urls import path, include
    from drf_yasg.views import get_schema_view
    from drf_yasg import openapi
    from rest_framework import permissions
    from rest_framework.documentation import include_docs_urls
    
    schema_view = get_schema_view(
        openapi.Info(
            title="API接口文档平台",  # 必传
            default_version='v1',  # 必传
            description="这是一个接口文档",
            terms_of_service="",
            contact=openapi.Contact(email=""),
            license=openapi.License(name=""),
        ),
        public=True,
        permission_classes=(permissions.AllowAny,),
        authentication_classes=(),
    )
    
    urlpatterns = [
        path('admin/', admin.site.urls),
    
        # 接口文档:swagger
        path('docs/', include_docs_urls(title='测试平台接口文档', description='xxx描述')),
        path('swagger/', schema_view.with_ui('swagger', cache_timeout=0), name='schema-swagger-ui'),
    
        # 映射子项目路由
        path('user/', include('my_user.urls')),
        path('project/', include('project.project_list.urls')),
        path('project/', include('project.project_detail.urls')),
    ]
    
    # 三个子路由
    from django.urls import path, include
    
    urlpatterns = [
    
    ]
    
    第五步:启动项目
    python manage.py runserver
    

    浏览器访问地址:http://127.0.0.1:8000/swagger/

    swagger接口文档

    至此,项目大体框架基本完成,下期开始写models层和view层

    相关文章

      网友评论

        本文标题:第一天:django+vue项目立项

        本文链接:https://www.haomeiwen.com/subject/mqjqartx.html