Django项目settings.py配置信息

转载于网络资源:

  1. 基本配置信息:

    • BASE_DIR = Path(__file__).resolve().parent.parent
      

      django项目的工作目录。

    • SECRET_KEY = ')o+504x)+hi#xh7ap01ouru@spqn5tj3od%9xlcd!0d9=0#bk('
      

      密匙配置,在创建项目的时候产生,一般无需修改。主要用于重要数据的加密处理。提高项目安全性,避免受到攻击者的恶意破坏。

    • DEBUG = True
      

      调试模式,若在开发模式,则应该设置为True,若项目部署上线则应该改为False。在开发模式中Django会自动检测代码是否被修改,根据结果确认是否重启服务器。

    • ALLOWED_HOSTS = []
      

      域名访问权限,设置可访问的域名,默认为空。当DEBUG = True时且ALLOWED_HOSTS为空列表时,项目只允许以localhost或127.0.0.1在浏览器访问,当DEBUG = False时,ALLOW_HOSTS 为必填项,负责项目无法启动,若想所有域名均可访问,设置ALLOWED_HOSTS = [’*’]。

    • INSTALLED_APPS = [
          'django.contrib.admin', #  后台管理系统
          'django.contrib.auth', #  用户认证系统
          'django.contrib.contenttypes', #  记录项目中所有的model元数据
          'django.contrib.sessions', #  session会话功能,用于标识当前访问网站的用户身份,记录用户信息。
          'django.contrib.messages', #  消息提示功能
          'django.contrib.staticfiles', #  查找静态资源路径
          'index' #  自己添加的app
      ]
      

      INSTALLED_APPS列表告诉Django有哪些app,项目创建时,Django已添加admin,auth等内置应用。若在项目中创建了app,则应该将app添加进INSTALLED_APPS列表中。

  2. 资源文件配置:

    资源文件配置分为静态资源和媒体资源。静态资源的配置由配置属性STATIC_URL,STATICFILES_DIRS和STATIC_ROOT进行设置,媒体资源文件的配置方式由配置属性MEDIA_URL和MEDIA_ROOT决定。

    1. 资源路由(STATIC_URL):

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

      静态资源指网站中不会改变的文件。例如css,JavaScript,图片等文件。若资源路由STATIC_URL的值为/static/,则浏览器访问静态资源的网站必须为static,否则无法访问,且在调试模式下只能识别app目录下的static文件夹。

    2. 资源集合(STATICFILES_DIRS):

      STATICFILES_DIRS = [os.path.join(BASE_DIR, 'MYSTATIC1'),
                          os.path.join(BASE_DIR, 'MYSTATIC2'),]
      
    3. 资源部署(STATIC_ROOT):

      STATIC_ROOT = os.path.join(BASE_DIR, 'allStatic')
      

      STATIC_ROOT的作用是在服务器部署项目,实现服务器和项目之间的映射。STATIC_ROOT收集整个项目的静态资源并放在一个文件夹中,然后由该文件夹与服务器之间构建映射关系。当在调试模式时,Django会自动提供静态文件的代理服务,当进入生产环境时,需要设置STATIC_ROOT。

    4. 媒体资源(MEDIA):

      # 媒体路由地址信息
      MEDIA_URL = '/media/'
      # media文件夹的完整路径信息
      MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
      

      设置完成后还需要让Django找到配置信息:打开DjangoProject中的urls.py,为媒体文件夹添加路由地址。

      from django.contrib import admin
      from django.urls import path, re_path
      from django.views.static import serve
      from django.conf import settings
      
      urlpatterns = [
          path('admin/', admin.site.urls),
          re_path('media/(?P<path>.*)', serve, {'document_root': settings.MEDIA_ROOT}, name='media')
      ]
      
  3. 模板配置:

    模板是一种较特殊的HTML文档。文档中嵌入了一些django能够识别的变量和指令,然后由django的模板引擎解析这些变量和指令,生成完整的网页返回给用户浏览。

    # django默认的模板配置信息
    TEMPLATES = [
        {
            # BACKEND: 定义模板引擎,内置模板引擎有DjangoTemplates与jinja2.Jania2
            'BACKEND': 'django.template.backends.django.DjangoTemplates',
            
            # DIRS: 设置模板所在路径,默认为空
            'DIRS': [BASE_DIR / 'templates']
            
            # APP_DIRS: 是否在app里查找模板文件。
            'APP_DIRS': True,
            
            # OPTIONS: 用于填充RequestContext的上下文,一般不改。
            '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',
                ],
            },
        },
    ]
    
  4. 数据库配置:

    django提供四种数据库引擎:MySQL,Oracle,sqlite3,postgresql。项目创建时默认使用sqlite3。

    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.sqlite3',
            'NAME': BASE_DIR / 'db.sqlite3',
        }
    }
    

    若想使用MySQL数据库,则应当安装mysqlclient库,并将上述代码改为

    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': 'django_db',
            'USER': 'root',
            'PASSWORD': 'root',
            'HOST': '127.0.0.1',
            'PORT': '3306',
        }
    }
    
    

    若想使用多个数据库,则应当将代码改为

    DATABASES = {
        # 第一个数据库
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': 'django_db',
            'USER': 'root',
            'PASSWORD': 'root',
            'HOST': '127.0.0.1',
            'PORT': '3306',
        },
        # 第二个数据库
        'Database1': {
            'ENGINE': 'django.db.backends.sqlite3',
            'NAME': BASE_DIR / 'db.sqlite3',
        },
        #第三个数据库
        'Database2': {
            'ENGINE': 'django.db.backends.oracle',
            'NAME': 'django_db2',
            'USER': 'root',
            'PASSWORD': 'root',
            'HOST': '127.0.0.1',
            'PORT': '1521',
        }
    }
  5. 中间件:

    中间件顾名思义,是介于request与response处理之间的一道处理过程,相对比较轻量级,并且在全局上改变django的输入与输出。

    # django默认的中间件,一般不需要更改,能满足大部分开发需求
    MIDDLEWARE = [
        # 内置的安全机制,保护用户与网站间的通信安全。
        'django.middleware.security.SecurityMiddleware',
        # session会话功能
        'django.contrib.sessions.middleware.SessionMiddleware',
        # 处理请求信息
        'django.middleware.common.CommonMiddleware',
        # csrf防护功能
        'django.middleware.csrf.CsrfViewMiddleware',
        # 开启内置的用户认证系统
        'django.contrib.auth.middleware.AuthenticationMiddleware',
        # 开启内置的信息提示功能
        'django.contrib.messages.middleware.MessageMiddleware',
        # 防止恶意程序单击劫持
        'django.middleware.clickjacking.XFrameOptionsMiddleware',
    ]
    
  6. 身份认证配置

    复制代码
    # 身份认证配置
    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', }, ]
    复制代码

     

  7. 语言配置

    复制代码
    LANGUAGE_CODE = 'zh-Hans'    # 语言
    
    TIME_ZONE = 'Asia/Shanghai'    # 时区
    
    USE_I18N = True    # 国际化配置
    
    USE_L10N = True    # 表单国际化配置
    
    USE_TZ = True     # 默认启用时时区配置
    复制代码
posted @ 2022-05-24 14:39  星辰大海日夜兼程  阅读(130)  评论(0编辑  收藏  举报