Django学习笔记---配置信息


Django配置信息

Django基本配置信息

from pathlib import Path
#项目路径
BASE_DIR = Path(__file__).resolve().parent.parent
#密匙配置
SECRET_KEY = 'django-insecure-ta78sh33gngj=7%plp*_jd2x1xd3s1z947$$!gd_f4t@grra_g'

# SECURITY WARNING: don't run with debug turned on in production!
#调试模式
DEBUG = True
#域名访问权限
ALLOWED_HOSTS = []
#App列表
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'index.apps.IndexConfig',
]

说明

	密钥配置SECRET_KEY:这是一个随机值,主要用于重要数据的加密处理,提高项目的安全性。
密钥主要用于用户密码、CSRF机制和Session等数据加密。
	调试模式DEBUG:在开发调试模式过程中会自动检测代码是否修改,根据结果执行是否刷新重启系统。
如果项目部署上线,要改为False,关闭调试模式。否则会泄露项目相关信息。
	域名访问权限:设置可访问的域名。当BEBUG为True并且ALLOWED_HOSTS 为空只允许回环地址在浏览器上访问。
当DEBUG为False时,ALLOWED_HOSTS为必填项,如果想允许所有的域名都可以访问,ALLOWED_HOSTS = [*]
	App列表:告诉Django有那些App.在项目创建时已有配置信息:
	admin:内置后台管理系统。
	auth:内置的用户认证系统。
	contenttypes:记录项目中所有model元数据(ORM框架)
	sessions:Session会话功能用于标识当前访问网站的用户身份及其他相关信息。
	messages:消息提示功能
	staticfiles:查找静态资源路径
	IndexConfig:pychram自动创建App名称注册
在项目中创建了App,必须在App列表中注册。最简单的形式就是将App的名字添加到INSTALLED_APPS中。
仿照appname.apps.AppnameConfig的形式添加也可以。

资源文件配置

资源文件分为静态资源和媒体资源,前者指网站不会变的文件如Css、JavaScript文件及一些图片等。由配置属性STATIC_URL、STATICFILES_DIRS和STATIC_ROOT进行设置。媒体文件一些会变动的资源如:头像、歌曲文件等。由MEDIA_URL、MEDIA_ROOT

资源路由

STATIC_URL = '/static/'

访问静态资源必须使用STATIC_URL设置的值。如css资源的拆分地址static/css/base.css

资源集合STATIC_DIRS

该属性以列表的形式表示,设置可以访问的静态资源文件夹

STATIC_DIRS=[
    os.path.join(BASE_DIR,'statics'),
]

表示可以访问根目录下的statics文件夹内的资源。如我们访问上面的CSS地址,Django就会去查找指定目录下的文件。

资源部署STATIC_ROOT

STATIC_ROOT作用是在服务器上部署项目实现服务器和项目之间的映射。STATIC_ROOT主要收集整个项目的静态资源并存放在一个新的文件夹下。在开发阶段并不需要设置。详细后续。

讨论

关于配置正确、路径正确但在调试DJANGO中读取不到STATIC中的文件问题:将配置文件配置成这样(这里我是建立static文件夹,作为静态资源文件夹,其中有css、js、images文件夹。)

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
STATICFILES_DIRS = (
    ('css', os.path.join(STATIC_ROOT, 'css').replace('\\', '/')),
    ('js', os.path.join(STATIC_ROOT, 'js').replace('\\', '/')),
    ('images', os.path.join(STATIC_ROOT, 'images').replace('\\', '/')),
)

注:一定要确定配置正确、使用路径正确

媒体资源

媒体路由地址:

MEDIA_URL=/media/

访问媒体资源必须使用STATIC_URL设置的值
媒体资源访问

MEDIA_ROOT=os.path.join(BASE_DIR,’media’)

值得注意:还需要在项目全局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'),
]

settings配置信息

STATIC_URL = '/static/'
STATIC_DIRS=[
    os.path.join(BASE_DIR,'statics'),
]
MEDIA_URL='/media/'
#获取media文件夹的完整路径信息
MEDIA_ROOT=os.path.join(BASE_DIR,'media')

模板配置

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

说明:

  • ‘BACKEND’:定义模板引擎,用于识别模板里面的变量和指令。
  • DIRS:设置模板所在路径,其设置方法有两种
'DIRS': [os.path.join(BASE_DIR,'templates')]
  • APP_DIRS:是否在App中寻找模板文件。
  • OPTIONS:用于填充RequestContext的上下文(模板里面的变量和指令),一般情况下不做修改。

数据库的配置

数据库配置是选择项目所使用的数据库类型,不同的数据库需要设置的数据库引擎也不同。
下面是Django提供的四种引擎:

Django.db.backends.postgresql
--------------------mysql
--------------------sqlite3
--------------------oracle

项目创建时,默认使用Sqlite3数据库,其配置信息如下:

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

当然也可以使用mysql数据库。
使用mysql数据库必须先安装mysqlclient或pymysql库。使用pymysql库还需在项目文件夹中的__init__.py配置如下代码:

import pymysql
pymysql.install_as_MySQLdb()

使用mysql数据库配置信息如下:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'myblog',#数据库名
        'USER':'root',#用户
        'PASSWORD':'',#密码
        'HOST':'127.0.0.1',#ip地址
        'PORT':"3306",#端口
    }
}

若项目中连接了多个数据库,如果模型未指定数据库,则会指定key为default的数据库。

中间件

一个用来处理Django请求Request和响应Response的框架级别的钩子。
在这里插入图片描述

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

说明:

  • SecurityMiddleware:内置的安全机制,保护用户与网站的通信安全。
  • SessionMiddleware:会话Session
  • LocaleMiddleware: 国际化和本地化功能
  • CommonMiddleware: 处理请求信息,规范化请求内容
  • CsrfViewMiddleware:开启CSRF防护
  • AuthenticationMiddleware:开启内置的用户认证系统
  • MessageMiddleware:开启内置的信息提示功能
  • XFrameOptionsMiddleware:防止恶意程序单击劫持。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值