📌 本文已被收录至《Django企业级开发实战》专栏,点击订阅解锁更多深度内容!
💡 提供完整的配置示例、避坑指南与性能优化方案,助力开发者快速搭建高可用Django项目!
目录
🚀 核心配置解析
1️⃣ 基础配置项
# 项目路径
BASE_DIR = Path(__file__).resolve().parent.parent
# 🔑 安全密钥(生产环境务必修改!)
SECRET_KEY = "django-insecure-i@*_anu26!@jzqca&8$y^#sew%6j0_61un7pwlg7$i+ip#c3tx"
# 🐞 调试模式(上线必须关闭!)
DEBUG = True
# 🌐 访问白名单(生产环境示例)
ALLOWED_HOSTS = ['yourdomain.com', 'www.yourdomain.com', '127.0.0.1']
关键说明:
-
BASE_DIR项目路径:主要通过os模块读取当前项目在计算机系统的具体路径,该代码在创建项目时自动生成,一般情况下无须修改。 -
SECRET_KEY密钥配置:密钥配置SECRET_KEY:这是一个随机值,在项目创建的时候自动生成,一般情况下无须修改。主要用于重要数据的加密处理,提高项目的安全性,避免遭到攻击者恶意破坏。密钥主要用于用户密码、CSRF机制和会话Session等数据加密。
- 用户密码: Django 内置一套Auth认证系统,该系统具有用户认证和存储用户信息等功能,在创建用户的时候,将用户密码通过密钥进行加密处理,保证用户的安全性。
- CSRF机制:该机制主要用于表单提交,防止窃取网站的用户信息来制造恶意请求。
- 会话Session: Session的信息存放在Cookie中,以一串随机的字符串表示,用于标识当前访问网站的用户身份,记录相关用户信息。
-
DEBUG调试模式:该值为布尔类型。如果在开发调试阶段,那么应设置为True,在开发调试过程中会自动检测代码是否发生更改,根据检测结果执行是否刷新重启系统。如果项目部署上线,那么应将其改为False,否则会泄漏项目的相关信息。 -
ALLOWED_HOSTS域名访问权限:设置可访问的域名,默认值为空列表。当DEBUG为True并且ALLOWED_HOSTS为空列表时,项目只允许以localhost或127.0.0.1在浏览器上访问。当DEBUG为False时,ALLOWED_HOSTS为必填项,否则程序无法启动,如果想允许所有域名访问,可设置ALLOW_HOSTS=['*']。 -
INSTALLED_APPS APP列表:告诉Django有哪些App。在项目创建时已有admin、auth和sessions等配置信息,这些都是Django内置的应用功能,各个功能说明如下。
2️⃣ 资源文件配置
资源文件配置分为静态资源和媒体资源。
- 静态资源的配置方式由配置属性
STATIC_URL、STATICFILESDIRS和STATIC_ROOT进行设置; - 媒体资源的配置方式由配置属性
MEDIA_URL和MEDIA ROOT决定
静态资源配置(CSS/JS/图片)
静态资源指的是网站中不会改变的文件。在一般的应用程序中,静态资源包括CSS文件、JavaScript文件以及图片等资源文件。默认配置,app下的static目录为静态资源,可以直接访问。其他目录不行。
STATIC_URL = "static/"
可以通过配置STATICFILES DIRS实现多个目录下的静态资源可以访问:
STATIC_URL = 'static/'
STATICFILES_DIRS = ['static']
静态资源配置还有STATIC_ROOT,其作用是在服务器上部署项目,实现服务器和项目之间的映射。STATIC_ROOT 主要收集整个项目的静态资源并存放在一个新的文件夹,然后由该文件夹与服务器之间构建映射关系。STATIC_ROOT配置如下:
# 静态资源部署
STATIC_ROOT = BASE_DIR / 'static'
当项目的配置属性 DEBUG 设为True的时候,Django 会自动提供静态文件代理服务,此时整个项目处于开发阶段,因此无须使用STATIC_ROOT。当配置属性DEBUG 设为False的时候,意味着项目进入生产环境,Django不再提供静态文件代理服务,此时需要在项目的配置文件中设置STATIC_ROOT。设置STATIC_ROOT需要使用 Django操作指令collectstatic来收集所有静态资源,这些静态资源都会保存在STATIC_ROOT所设置的文件夹里。
媒体资源(用户上传文件)
一般情况下,STATIC_URL是设置静态文件的路由地址,如CSS样式文件、JavaScript文件以及常用图片等。对于一些经常变动的资源,通常将其存放在媒体资源文件夹,如用户头像、歌曲文件等。媒体资源和静态资源是可以同时存在的,而且两者可以独立运行,互不影响,而媒体资源只有配置属性MEDIA_URL和 MEDIA_ROOT。
配置内容如下:
# 设置媒体路由
MEDIA_URL = 'media/'
# 设置media目录的完整路径
MEDIA_ROOT = BASE_DIR / 'media'
配置属性设置后,还需要将media文件夹注册到 Django里,让 Django知道如何找到媒体文件,否则无法在浏览器上访问该文件夹的文件信息。打开项目文件夹的urls.py文件,为媒体文件夹media添加相应的路由地址,代码如下:
from django.conf import settings
from django.contrib import admin
from django.urls import path, re_path
from django.views.static import serve
import helloWorld.views
urlpatterns = [
path('admin/', admin.site.urls),
path('index/', helloWorld.views.index),
# 配置媒体文件的路由地址
re_path('media/(?P<path>.*)', serve, {
'document_root': settings.MEDIA_ROOT},
name='media')
]
3️⃣模板配置-Templates
在 Web开发中,模板是一种较为特殊的HTML文档。这个HTML文档嵌入了一些能够让Django识别的变量和指令,然后由Django的模板引擎解析这些变量和指令,生成完整的HTML网页并返回给用户浏览。模板是Django里面的MTV框架模式的T部分,配置模板路径是告诉Django在解析模板时,如何找到模板所在的位置。创建项目时,Django已有初始的模板配置信息,如下所示:
TEMPLATES = [
{
# 定义模板引擎,用于识别模板里面的变量和指令。
# 内置的模板引擎有 DjangoTemplates和 jinja2.Jinja2,每个模板引擎都有自己的变量和指令语法
"BACKEND": "django.template.backends.django.DjangoTemplates",
# 设置模板所在路径,告诉

最低0.47元/天 解锁文章
1935

被折叠的 条评论
为什么被折叠?



