Django5 项目配置settings.py文件

一、基本配置

Django 的配置文件 setings.py用于配置整个网站的环境和功能,核心置必须有项目路径、钥配置、域名访问权限、App列表、中间件、资源文件、模板配置、数据库的连接方式。

#项目路径
# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve().parent.parent


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

# 密钥配置
# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = 'django-insecure-518%0&f719@m@-agm6#bygj-$#u=_b*l#@oejxtu4^(*o!gu=g'

# 调试模式
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True

# 域名访问权限
ALLOWED_HOSTS = []

# APP列表
# Application definition

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'helloworld.apps.HelloworldConfig'
]

        a、BASE_DIR 项目路径:主要通过OS模块读取当前项目在计算机系统的具体路径,该代码在创建项目时自动生成,一般情况下无须修改。
        b、SECRET_KEY密钥配置:密钥配置SECRET KEY;这是一个随机值,在项目创建的时候自动生成,一般情况下无须修改,主要用于重要数的加密处现,提高项目的安全性,避免遭到攻击者恶意破坏,璨钥主要用于用户码、CSRF机制和会话Session等数据加密。

                --用户密码:Diango 内置一套Auth认证系统,该系统具有用户认证和存储用户信息等功能,在创建用户的时候,将用户密码通过密销进行加密处现,保证用户的安全性。
                --CSRF机制:该机制主要用于表单提交,防止窃取网站的用户信息来制造恶意请求。
                --会话Session: Session的信息存放在(ookie中,以一串随机的字符串表示,用于标识当前访问网站的用户身份,记录相关用户信息。
        c、DEBUG 调试横式:该值为布尔类型,如果在开发调过阶段,那么应设为True,在开发调试过程中会自动检测代码是否发生更改,根据检测结果执行是否刷新重启系统。如果项目部署上线,那么应将其改为False,否则会泄漏项目的相关信息。
        d、ALLOWED-HOSTS 域名访问权限: 设置可访问的域名,默认值为空列表,当DEBUG为True并且 ALLOWED HOSTS为空列表时,项自只允许以localhost或127.0.0.1在浏览器上访问,当DEBUG为False时,ALLOWEDHOSTS为必填项,否则程序无法启动,如果想允许所有城名访问,可设置ALLOW.HOSTS=['*']。

        e、INSTALLED_APPS APP列表:告诉Djane有哪些App,在项目创建时已有admin authsessions 等配置信息,这些都是D/aneo内置的应用功能,各个功能
说明如下。
                1.admin:内置的后台管理系统
                2.auth:内置的用户认证系统
                3.contenttypes:记录项目中所有model元数据( Diango 的ORM框架).
                4.sessions; Session会话功能,用于标识当前访问网站的用户身份,记录相关用户信息
                5.messages;消息提示功能
                6.staticfiles;查找静态资源路径
如果在项目中创建了App,就必须在App列表INSTALLED_APPS添加App类

二、资源文件配置

资源文件配置分为静态资源和媒体资源。静本资源的配置方式由配置属性STATICURL、STATICFILES DIRSSTATIC.ROOT进行设 媒体资源的配置方式由配置属
性MEDIA_URL和MEDIA ROOT决定。
静态资源配置=STATIC URL
静态资源指的是网站中不会改变的文件、在一般的应用程序中,静态资源包括CSS文件、lavaScript文件以及图片警资源文件
默认配置,app下的static目录为静态资源,可以直接访问。其他目录不行。

STATIC_URL = 'static/'

在app下新建static目录,然后放一个图片

app目录下新建images目录,放一个图片

此外,需要注意的是,STATIC_URL 是静态文件在Web上的访问URL前缀,而不是文件系统的路径。在上面的例子中,它被设置为'/static/',这意味着所有静态文件都可以通过http://127.0.0.1:8000/static/这样的URL来访问

三、静态资源部署配置 STATIC_ROOT

静态资源配置还有STATCROOT,其作用是在服务器上部署项目,实现服务器和项目之间的映。STATCROOT 主要收集整项目的静态资源并存放在一个新的
文件来,然后由该文件夹与服务器之间构建映射关系。STATIC_ROOT配置如下:
# 静态资源部署

STATIC_ROOT = BASE_DIR / "static


当项目的配置属性 DEBUG 没为True的时候,Dianeo 会动提供静态文件代理服务,此时整个项目处于开发阶段,因此无须使用STATIC.ROOT,当配置属性
DEBUG 设为False的时候,意味着项目进入生产环境,Django不再提供静态文件代理服务,此时需要在项目的配置文件中设置STATIC.ROOT。
设置STATIC_ROOT需要使用 Dlango操作指令collectstatic来收集所有静态资源,这些静态资源都会保存在STATIC.ROOT所设置的文件夹里.

四、媒体资源配置-MEDIA

一般情况下,STATIC.URL是设置静态文件的路由地址,如CSS样式文件、JavaScript文件以及常用图片等,对于一些经常变动的资源,通常将其存放在媒体资源文
件夹,如用户头像、歌曲文件等。
媒体资源和静态资源是可以同时存在的,而且两者可以独立运行,互不影响,而媒体资源只有配置属性MEDIA URL和 MEDIA ROOT。
我们在项目目录下新建media目录,里面再放一个video.mp4视频。

在setting.py中加入配置

# 设置媒体路由
MEDIA_URL = 'media/'
# 设置media目录的完整路径
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

在urls.py中加入路径匹配

    # 配置媒体文件的路由地址
    re_path(r'^media/(?P<path>.*)$', serve, {'document_root': settings.MEDIA_ROOT}, name='media'),

项目重启后,访问本地路径即可

五、模板配置

在 Web开发中,模板是一种较为特殊的HTML文档,这个HTML文档嵌入了一些能够让D/ango识别的变量和指令,然后由Dlaneo的模板引整解析这些变量和指令,生成亮整的HTML网页并返回给用户浏览,横板是Djaneo里面的MV架横式的T部分,配置横板路径是告诉Djang在解析横板时,如何找到横板所在的位置。创建项目时,Diango已有初始的模板配置信息,如下所示:

模板配置是以列表格式呈现的,每个元素具有不同的含义,其含义说明如下。
        a、BACKEND:定义横板擎,用于识别模板里面的变量和指令。内置的攒板3整有 DjaneoTemplates 和 jinja2.jinja2,每个横引整都有自己的变量和指活法。
        b、DIRS:设置模板所在路径,告诉Diango在哪个地方查找模板的位置,默认为空列表
        c、APP_DIRS:是否在App里查找模板文件。
        d、OPTIONS:用于填充在RequestContext 的上下文(模板里面的变量和指令),一般情况下不做任何修改


我们是可以在应用里新建templates,供自己的应用使用。在templates下新建index2.html横版文件

在项目文件夹下 views.py中

def index2(request):
    return render(request, 'index2.html')

在主文件夹下urls.py 配置路由

path('index2/', helloworld.views.index2),

重启项目就可以了

如果再到子项目文件夹中新建templates目录

需压配置settings.py

'DIRS': [os.path.join(BASE_DIR, 'templates'), os.path.join(BASE_DIR, 'helloworld/templates')],

重启项目即可,该目录会被框架扫描到

views.py文件中配置

urls.py文件中配置

六、数据库配置

数据车配置是选择项目所使用的数库的类型,不同的数规库需要设置不同的数揭库引擎,数揭库引肇用于实现项目与数车的连接,Django提供4种数据库引擎
        ‘django.db.backends,postgresql'
        ’django.db.backends.mysql‘
        ‘django.db.backends.sqlite3’
        ’django.db.backends.oracle‘
项目创递时默认使用Salite3数揭库,这是一款轻型的数据库,常用于嵌入式系统开发,而且占用的资源非常少。Sgite3数据库配置信息如下:

如果要把上述的连接信息改成MySQL数据库,首先需要安装MySQL连接横块 mysqlclient

pip install mysqlclient -i https://pypi.tuna.tsinghua.edu.cn/simple

模块安装后,再项目的配置文件settings.py中配置MySql数据库链接信息

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

django5 至少需要 mysql8.0.11 版本以上

也可以多数据库配置

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': BASE_DIR / 'db.sqlite3',
        'USER': 'root',
        'PASSWORD': '123456',
        'HOST': '127.0.0.1',
        'PORT': '3306'
    },
    'mySqlite3': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    },
    'mySql3': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    }
}

七、中间件

中间件(Mliddleware) 是一个用来处现 Djang 的请求(Request) 和应(Respnse) 的架级别的钩子,它是一个轻量、低级别的播件系统,用于在全局范围内改变 Diango的输入和输出。
当用户在网站中进行某个操作时,这个过程是用户向网站发送HTTP请求(Request);而网站会根据用户的操作返回相关的网页内容,这个过程称为响应处理(Response)。从请求到响应的过程中,当 Django接收到用户请求时,首先经过中间件处现请求信息,执行相关的处现,然后将处现结果返回给用户。

Django 默认配置如下:

diango自带的中间件有:
        a、SecuritvMiddleware:内置的安全机制,保护用户与网站的通信安全
        b、SessionMiddleware:会话Session功能
        c、LocaleMiddleware:国际化和本地化功能。
        d、CommonMiddleware:处理请求信息,规范化请求内容
        e、CsrfViewMiddleware:开启CSRF防护功能。
        f、AuthenticationMiddleware:开启内置的用户认证系统
        g、MessaceMiddleware:开启内置的信息提示功能,
        h、XFrameOptionsMiddleware:防止恶意程序单击劫持

自定义中间件:

中间件可以定义五个方法,分别是: (主要的是processrequest和process.response),在自己定义中间件时,必须继承MiddlewareMlixin
        process_request(self,request) 请求views方法之前会执行
        proess_view(self,request, callback,callback args,callback kwars) Dlango会在润用视图函数之前调用process_view方法
        process.template_responselself,request,response) 该方法对视图函教返回值有要求,必须是一个含有render方法类的对象,才会执行此方法
        process_exception(self,request, exception) 这个方法只有在视图函数中出现异常了才执行
        process_response(self,request, response) 请求执行完成,返回页面前会执行

写一个中间件来实现功能

新建一个mymid的目录,并创建md1类并继承MiddlewareMixin类

"""

    自定义中间件

"""
from django.utils.deprecation import MiddlewareMixin


class md1(MiddlewareMixin):
    def process_request(self, request):
        print("request请求来了")

    def process_response(self, request, response):
        print("请求完毕,将返回响应")
        return response

将我们写的类加入到配置中 settings.py

'helloworld.mymid.md1.MD1',

完活~!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值