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

项目的目录结构:

-HeartFailure

|-- apps

|--user

|--HeartFailure

|-- static

|--manage.py

一、django项目相关的

1、命令行中创建django项目

复制代码
#1、切换到指定的虚拟环境中
workon my_drf

#2、该虚拟环境已经安装好django和rest_framework了
django-admin startproject HeartFailure

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

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

python 复制代码
python ../manage.py startapp user

4、注册user应用

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

b.注册应用

python 复制代码
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'apps.user.apps.UserConfig',#用户管理
]

二、drf纯净版配置

settings.py

python 复制代码
INSTALLED_APPS = [
    # 'django.contrib.admin', #1、后台管理注销
    # 'django.contrib.auth', #2、django认证注销
    # 'django.contrib.contenttypes',#3、注销
    # 'django.contrib.sessions',#4、session会话功能注销
    # 'django.contrib.messages',#5、注销
    
    'django.contrib.staticfiles', #静态资源,后续静态资源可以由nginx代理
    'rest_framework',#使用Response时,会需要某些静态资源
    'apps.user.apps.UserConfig',#用户app
]




MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    # 'django.contrib.sessions.middleware.SessionMiddleware', #1、session中间件注销
    'django.middleware.common.CommonMiddleware',
    # 'django.middleware.csrf.CsrfViewMiddleware', #2、csrf校验注销
    # 'django.contrib.auth.middleware.AuthenticationMiddleware',#3、认证中间件注销
    # 'django.contrib.messages.middleware.MessageMiddleware', #4、注销
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]



TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')]
        ,
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                # 'django.contrib.auth.context_processors.auth', #1、注销掉
                # 'django.contrib.messages.context_processors.messages', #2、注销掉
            ],
        },
    },
]

STATIC_URL = '/static/'
#设置静态路由搜索的的目录,开发阶段可以使用,上线阶段用nginx来代理即可
STATICFILES_DIRS=[os.path.join(BASE_DIR,'static')]


#drf的配置,全局配置
REST_FRAMEWORK = {
    #在认证时,对于没有登录的用户会给request.user赋值匿名用户,这里设置赋值成None,【纯净版必须设置】
    'UNAUTHENTICATED_USER':None,
}

三、简单的nginx配置

python 复制代码
#心衰系统的本地开发
server {
    listen       8008;
    server_name 127.0.0.1;

    #前端
    location / {
        root C:/APPS/html;
        index index.html;
    }

    #后端
    location /api/ {
         proxy_pass http://127.0.0.1:8005/;

         #配置nginx支持websocket
         proxy_http_version 1.1;
         proxy_set_header Upgrade $http_upgrade;
         proxy_set_header Connection "upgrade";

         #websocket三个超时时间,有默认值
         proxy_read_timeout 600s;
         proxy_connect_timeout 30s;
         proxy_send_timeout 60s;
     }

     #nginx代理静态资源
     location /api/static {
         alias C:\data\project\HeartFailure\static;
     }


}

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

相关推荐
独好紫罗兰7 分钟前
对python的再认识-基于数据结构进行-a006-元组-拓展
开发语言·数据结构·python
Dfreedom.9 分钟前
图像直方图完全解析:从原理到实战应用
图像处理·python·opencv·直方图·直方图均衡化
铉铉这波能秀24 分钟前
LeetCode Hot100数据结构背景知识之集合(Set)Python2026新版
数据结构·python·算法·leetcode·哈希算法
牛奔28 分钟前
如何理解 Go 的调度模型,以及 G / M / P 各自的职责
开发语言·后端·golang
chilavert31831 分钟前
技术演进中的开发沉思-357:重排序(下)
java·后端
Boop_wu37 分钟前
Spring生态
java·后端·spring
jzheng861039 分钟前
Spring Boot(快速上手)
java·spring boot·后端
怒放吧德德1 小时前
Python3基础:基础实战巩固,从“会用”到“活用”
后端·python
aiguangyuan1 小时前
基于BERT的中文命名实体识别实战解析
人工智能·python·nlp
喵手1 小时前
Python爬虫实战:知识挖掘机 - 知乎问答与专栏文章的深度分页采集系统(附CSV导出 + SQLite持久化存储)!
爬虫·python·爬虫实战·零基础python爬虫教学·采集知乎问答与专栏文章·采集知乎数据·采集知乎数据存储sqlite