首页 > 其他分享 >Django中配置文件的详细解读

Django中配置文件的详细解读

时间:2023-02-27 20:58:36浏览次数:42  
标签:配置文件 auth django 解读 BASE contrib 日志 Django DIR

Django中配置文件的详细解读


import os.path
from pathlib import Path

# Build paths inside the project like this: BASE_DIR / 'subdir'.

# 1.项目的根目录
# /Users/duoduo/Luffy/luffy_api/luffy_api
BASE_DIR = Path(__file__).resolve().parent.parent

import sys

sys.path.insert(0, os.path.join(BASE_DIR, 'apps'))
sys.path.insert(0, str(BASE_DIR))
# sys.path.insert(0, BASE_DIR)

from home import models

models.Md()

# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/3.2/howto/deployment/checklist/

# 秘钥,设计到加密的django中都会用它
# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = 'django-insecure-qnol*16brv9vs-x2n9h%6%4p1nnkgh9^tdzj2$2(&id!zn$hk%'

# 项目是以debug模式运行,还是非debug莫斯运行
# 项目上线之后DEBUG应该改为False
# 1.以debug模式运行,项目可以热更新
# 2.debug为true下,调试者模式下对开发者更友好,可以列出所有路径
# 3.项目出错后前端可以看到
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True

# 它需要搭配 DEBUG= False
# 允许我的项目部署在哪个ip地址上,写'*'表示允许所有
ALLOWED_HOSTS = []

# Application definition
# django是由多个app组成的,INSTALLED_APPS中配置了内置的app
# django是个大而全的框架,内置了很多app,
INSTALLED_APPS = [
    'django.contrib.admin',  # admin后台权限管理
    'django.contrib.auth',  # auth权限管理
    'django.contrib.contenttypes',  # contenttype会存表中内置app与表的关系
    'django.contrib.sessions',  # session
    'django.contrib.messages',  # message是django的消息框架,与flask的闪现一样
    'django.contrib.staticfiles',  # staticfiles用于管理静态资源
    'rest_framework',
    'home',
]

# 中间件
MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',  # 安全相关,request中为什么有user
    'django.contrib.sessions.middleware.SessionMiddleware',  # 处理session
    'django.middleware.common.CommonMiddleware',  # slash的问题,路由带不带斜杠的重定向问题
    'django.middleware.csrf.CsrfViewMiddleware',  # csrf认证,生成csrf床
    'django.contrib.auth.middleware.AuthenticationMiddleware',  # 用户认证
    'django.contrib.messages.middleware.MessageMiddleware',  # 消息框架相关
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

# 根路径
ROOT_URLCONF = 'luffy_api.urls'

# 模版文件
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [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',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

# 项目运行的配置 :项目上线允许的时候使用的是uwsgi运行application()
WSGI_APPLICATION = 'luffy_api.wsgi.application'

# Database
# https://docs.djangoproject.com/en/3.2/ref/settings/#databases

# 数据库配置 可以配置多数据库
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    }
}

# Password validation
# https://docs.djangoproject.com/en/3.2/ref/settings/#auth-password-validators

AUTH_PASSWORD_VALIDATORS = [
    {
        'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
    },
]

# Internationalization
# https://docs.djangoproject.com/en/3.2/topics/i18n/

# 国际化
LANGUAGE_CODE = 'en-us'

TIME_ZONE = 'UTC'

USE_I18N = True

USE_L10N = True

USE_TZ = True

# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/3.2/howto/static-files/

# 静态文件
STATIC_URL = '/static/'

# Default primary key field type
# https://docs.djangoproject.com/en/3.2/ref/settings/#default-auto-field

# 大整形
DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'

# 真实项目上线后,日志文件打印级别不能过低,因为一次日志记录就是一次文件io操作
LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    # 日志格式化输出的两种模式
    'formatters': {
        'verbose': {
            'format': '%(levelname)s %(asctime)s %(module)s %(lineno)d %(message)s'
        },
        'simple': {
            'format': '%(levelname)s %(module)s %(lineno)d %(message)s'
        },
    },
    'filters': {
        'require_debug_true': {
            '()': 'django.utils.log.RequireDebugTrue',
        },
    },
    # 处理器选择在 控制台与文件中进行配置
    'handlers': {
        # 控制台配置
        'console': {
            # 实际开发建议使用WARNING
            'level': 'INFO',
            'filters': ['require_debug_true'],
            'class': 'logging.StreamHandler',
            'formatter': 'simple'
        },
        # 文件配置
        'file': {
            # 实际开发建议使用ERROR
            'level': 'INFO',
            'class': 'logging.handlers.RotatingFileHandler',
            # 日志位置,日志文件名,日志保存目录必须手动创建,注:这里的文件路径要注意BASE_DIR代表的是小luffyapi
            'filename': os.path.join(os.path.dirname(BASE_DIR), "logs", "luffy.log"),
            # 日志文件的最大值,这里我们设置300M
            'maxBytes': 300 * 1024 * 1024,
            # 日志文件的数量,设置最大日志数量为10
            'backupCount': 10,
            # 日志格式:详细格式
            'formatter': 'verbose',
            # 文件内容编码
            'encoding': 'utf-8'
        },
    },
    # 日志对象
    'loggers': {
        'django': {
            'level': 'INFO',
            'handlers': ['console', 'file'],
            'propagate': True,  # 是否让日志信息继续冒泡给其他的日志处理系统
        },
    }
}

# 全局异常处理
REST_FRAMEWORK = {
    'EXCEPTION_HANDLER':'utils.common_exceptions.luffy_exception_handler'
}

标签:配置文件,auth,django,解读,BASE,contrib,日志,Django,DIR
From: https://www.cnblogs.com/DuoDuosg/p/17161835.html

相关文章

  • django项目环境搭建相关
    目录1.电脑pip换源2-虚拟环境的搭建3-项目后台(luffy项目)4-luffy后台配置5-luffy数据库6-user模块User表.md1.电脑pip换源pip安装源"""1、采用国内源,加速下载模块的速......
  • Druid(德鲁伊)数据池配置文件详解以及简单的实现
    搭建Druid数据池,需要导入两个包druid-1.1.5.jarmysql-connector-java-5.1.41-bin.jar 首先在src目录下新建一个druid.properties配置文件,然后在这个文件中封装配置信......
  • django多表查询
      注意事项: 表的名称myapp_modelName,是根据模型中的元数据自动生成的,也可以覆写为别的名称 id 字段是自动添加的 对于外键字段,Django会在字段名上添加"......
  • django配置文件
    frompathlibimportPathimportosimportsys#项目根路径#我们就是要让小路飞路径作为项目根路径BASE_DIR=Path(__file__).resolve().parent.parent#项目根......
  • 16.Django的信号
    Django中的信号就是字面意思,当发送某个信号的时候,就会触发一个或者多个函数的执行,例如,当我们每次发送短信的时候,我们可能需要将验证码保存在redis中,同时需要记录在log中,此......
  • 后台日志封装、前后端分离的rbac项目演示、全局异常处理封装、封装Response、luffy数
    目录1后台日志封装2前后端分离的rbac项目演示3全局异常处理封装3封装Response4luffy数据库创建4.1创建用户创建库4.2使用项目连接库5软件开发模式6User模块用户表......
  • 路飞-day2——路飞后台配置之封装logger、路飞后台配置之封装全局异常、路飞台配置之
    目录一、路飞后台配置之封装logger配置步骤步骤一:复制代码(之前学过的日志字典)到配置文件中(dev.py)步骤二:在utils新建common_logger.py,写入下方代码,得到日志对象步骤三:在......
  • k8sdeploy配置文件示例
    apiVersion:extensions/v1beta1kind:Deploymentmetadata:name:[k8s服务名]namespace:defaultlabels:k8s-app:[k8s服务名]spec:replicas:1te......
  • Luffy后台Django项目创建
    一、准备环境1.创建luffy项目虚拟环境mkvirtualenvluffy2.安装项目基础依赖#1.安装Djangopipinstalldjango==3.2.2#2.安装djangorestframeworkpipinstalldja......
  • nginx代理本地目录配置文件
    #usernobody;worker_processes1;#error_loglogs/error.log;#error_loglogs/error.lognotice;#error_loglogs/error.loginfo;#pidlogs/nginx......