• DRF-项目-(1):构建纯净版的drf项目,不再使用django的后台管理,django的认证,django的session等功能,作为一个纯接口项目


    项目的目录结构:

     -HeartFailure

            |-- apps

                    |--user

            |--HeartFailure

            |-- static

            |--manage.py

    一、django项目相关的

    1、命令行中创建django项目

    1. #1、切换到指定的虚拟环境中
    2. workon my_drf
    3. #2、该虚拟环境已经安装好django和rest_framework了
    4. django-admin startproject HeartFailure

     2、在项目中创建apps包,所有的应用都放到这里

    3、切换到apps目录下,创建user应用

    python ../manage.py startapp user

    4、注册user应用

    a.由于user应用是放到了apps包中了,需要进行修改:apps/user/apps.py,其中的name='apps.user'

    b.注册应用

    1. INSTALLED_APPS = [
    2. 'django.contrib.admin',
    3. 'django.contrib.auth',
    4. 'django.contrib.contenttypes',
    5. 'django.contrib.sessions',
    6. 'django.contrib.messages',
    7. 'django.contrib.staticfiles',
    8. 'apps.user.apps.UserConfig',#用户管理
    9. ]

    二、drf纯净版配置

    settings.py

    1. INSTALLED_APPS = [
    2. # 'django.contrib.admin', #1、后台管理注销
    3. # 'django.contrib.auth', #2、django认证注销
    4. # 'django.contrib.contenttypes',#3、注销
    5. # 'django.contrib.sessions',#4、session会话功能注销
    6. # 'django.contrib.messages',#5、注销
    7. 'django.contrib.staticfiles', #静态资源,后续静态资源可以由nginx代理
    8. 'rest_framework',#使用Response时,会需要某些静态资源
    9. 'apps.user.apps.UserConfig',#用户app
    10. ]
    11. MIDDLEWARE = [
    12. 'django.middleware.security.SecurityMiddleware',
    13. # 'django.contrib.sessions.middleware.SessionMiddleware', #1、session中间件注销
    14. 'django.middleware.common.CommonMiddleware',
    15. # 'django.middleware.csrf.CsrfViewMiddleware', #2、csrf校验注销
    16. # 'django.contrib.auth.middleware.AuthenticationMiddleware',#3、认证中间件注销
    17. # 'django.contrib.messages.middleware.MessageMiddleware', #4、注销
    18. 'django.middleware.clickjacking.XFrameOptionsMiddleware',
    19. ]
    20. TEMPLATES = [
    21. {
    22. 'BACKEND': 'django.template.backends.django.DjangoTemplates',
    23. 'DIRS': [os.path.join(BASE_DIR, 'templates')]
    24. ,
    25. 'APP_DIRS': True,
    26. 'OPTIONS': {
    27. 'context_processors': [
    28. 'django.template.context_processors.debug',
    29. 'django.template.context_processors.request',
    30. # 'django.contrib.auth.context_processors.auth', #1、注销掉
    31. # 'django.contrib.messages.context_processors.messages', #2、注销掉
    32. ],
    33. },
    34. },
    35. ]
    36. STATIC_URL = '/static/'
    37. #设置静态路由搜索的的目录,开发阶段可以使用,上线阶段用nginx来代理即可
    38. STATICFILES_DIRS=[os.path.join(BASE_DIR,'static')]
    39. #drf的配置,全局配置
    40. REST_FRAMEWORK = {
    41. #在认证时,对于没有登录的用户会给request.user赋值匿名用户,这里设置赋值成None,【纯净版必须设置】
    42. 'UNAUTHENTICATED_USER':None,
    43. }

    三、简单的nginx配置

    1. #心衰系统的本地开发
    2. server {
    3. listen 8008;
    4. server_name 127.0.0.1;
    5. #前端
    6. location / {
    7. root C:/APPS/html;
    8. index index.html;
    9. }
    10. #后端
    11. location /api/ {
    12. proxy_pass http://127.0.0.1:8005/;
    13. #配置nginx支持websocket
    14. proxy_http_version 1.1;
    15. proxy_set_header Upgrade $http_upgrade;
    16. proxy_set_header Connection "upgrade";
    17. #websocket三个超时时间,有默认值
    18. proxy_read_timeout 600s;
    19. proxy_connect_timeout 30s;
    20. proxy_send_timeout 60s;
    21. }
    22. #nginx代理静态资源
    23. location /api/static {
    24. alias C:\data\project\HeartFailure\static;
    25. }
    26. }

    总结:纯净版的drf项目,抛弃了django的后台管理,django的认证机制,会话机制等等。相对来说,系统允许速度会快一些。

  • 相关阅读:
    ARM裸机二
    从裸机启动开始运行一个C++程序(十)
    解释一下用于WebRTC的SRTP的实时传输协议
    辅助驾驶功能开发-功能规范篇(24)-2-影子模式功能触发规范
    尚硅谷Flink(完)FlinkSQL
    多线程的使用
    Vue组件库Element
    设计模式——5. 原型模式
    JavaScript高级 js语言通识
    MSR015/MSR025低温漂、低功耗电压基准
  • 原文地址:https://blog.csdn.net/weixin_46371752/article/details/134545755