[Django Web] 基本配置信息

        一个简单的项目必须具备的基本配置信息由:项目路径、密钥、域名访问权限、APP列表和中间件。下面是settings.py文件的各个参数的配置。

import os

# 项目路径,创建项目时自动生成,一般无需修改
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

# 密钥配置,这是一个随机值,用于重要数据加密处理(用户密码、CSRF机制和会话Session),无需修改
SECRET_KEY = 'm5#*$8q+oft@@gfplmuwlz($yc(&k_i$e^+u!!7=ao*0k9j$0r'

# 调试模式,开发调试阶段设置True,避免代码发生更改。部署上线后设置为False
DEBUG = False

# 域名访问权限,设置可访问的域名。当DEBUG为False时,这是必填项。
ALLOWED_HOSTS = ['*']    # 表示允许所有域名访问

# App列表,告诉Django有哪些App。如果创建了App就在这里注册,如index
INSTALLED_APPS = [
    'django.contrib.admin',    # 内置的后台管理系统
    'django.contrib.auth',    # 内置的用户认证系统
    'django.contrib.contenttypes',    # 记录项目中所有model元数据(Django的ORM框架)
    'django.contrib.sessions',    # Session回话功能,用于表示当前用户身份,记录信息
    'django.contrib.messages',    # 消息提示功能
    'django.contrib.staticfiles',    # 查找静态资源路径
    'index',    # 开发者创建的App
]

# 中间件,用来处理Django的请求和响应的框架级别的钩子,是一个插件系统,用于在全局范围内改变Django的输入和输出。
MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',    # 内置安全机制,保证通信安全
    'django.contrib.sessions.middleware.SessionMiddleware',    # 会话功能
    'django.middleware.common.CommonMiddleware',    # 处理请求信息
    'django.middleware.csrf.CsrfViewMiddleware',    # 开启CSRF功能
    'django.contrib.auth.middleware.AuthenticationMiddleware',    # 开启内置用户认证系统
    'django.contrib.messages.middleware.MessageMiddleware',    # 开启内置信息提示功能
    'django.middleware.clickjacking.XFrameOptionsMiddleware',    # 防止恶意程序单机劫持

    # 添加LocaleMiddleware,使Django内置的功能支持中文显示
    'django.middleware.locale.LocaleMiddleware',     # 国际化和本地化功能
    
]

# 指定根路由位置
ROOT_URLCONF = 'MyDjango.urls'

# 模板是一种较为特殊的HTML文档,嵌入了一些Django能识别的变量和指令,然后由模板引擎解析,生成完整的网页供用户浏览。一般在根目录的template存放共用的模板文件,供各个App调用。下面是默认的配置信息。
TEMPLATES = [
    {
        # BACKEND用于定义模板引擎,用于识别变量和指令。内置的引擎有Django Template和jinja2.
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        
        # 设置模板所在路径,默认为空
        'DIRS': [],

        # 是否在App里面查找模板文件
        'APP_DIRS': True,

        # 用于填充在RequestContest的上下文,不需修改。
        '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',
        ], },
    },
]

# 用于指定用于处理HTTP请求的WSGI应用程序
WSGI_APPLICATION = 'MyDjango.wsgi.application'

# 数据库配置。Django提供4种引擎(mysql、postgresql、sqlite3、oracle)
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'messagedb',
        'USER': 'root',
        'PASSWORD': '1234',
        'HOST': '127.0.0.1',
        'PORT': '3306',
    },
}


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',},
]

LANGUAGE_CODE = 'en-us'

TIME_ZONE = 'UTC'

USE_I18N = True

USE_L10N = True

USE_TZ = True

# 资源路由,一般的应用程序中,静态资源包括CSS、JS、图片等资源。
STATIC_URL = '/static/'    # 这是静态资源的路由地址,默认只识别当前App的static的静态资源。

# 资源集合, 解决的资源路由的限制问题。资源集合把不同目录的static文件集合在一起
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static'),
os.path.join(BASE_DIR, 'index/Mystatic'),]

# 资源部署,作用是在服务器上部署项目,实现服务器和项目之间的映射,主要收集整个项目的静态资源并存放在一个新的资源文件夹,然后由该文件构建文件夹与服务器之间构建映射关系。
STATIC_ROOT = os.path.join(BASE_DIR, 'AllStatic')

        上面提到了静态资源,但是对于一些经常变动的资源,通常将其放在媒体资源文件夹,如用户图片。

# settings.py文件对媒体路由设置
MEDIA_URL = '/media/'

# 获取media文件夹完整的路径信息
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

再将media文件注册到Django里面。

# 与项目名同名的文件下的urls.py

from django.views.static import serve
from django.conf import settings
urlpatterns = [
    path('admin/', admin.site.urls),
    path('', index),
    # 配置媒体文件的路由地址
    re_path('media/(?P<path>.*)', serve, ('document_root': settings.MEDIA_ROOT),name='mmedia'),]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值