社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Django

学习 Django 配置,看这篇文章就能学会 50%,剩下的 1/2 看下一篇。

梦想橡皮擦 • 2 年前 • 349 次点击  

橡皮擦,一个逗趣的互联网高级网虫。新的系列,让我们一起进入 Django 世界。

已经完成的文章

十六、Django 配置

这篇文章主要学习的 Django 的配置文件 settings.py ,因为配置文件是一个模块,所以配置项都是模块级别的变量,配置文件在使用时需要提前做好配置,你可以打开 manage.py ,然后在 main 函数开头位置,进行环境变量 DJANGO_SETTINGS_MODULE 的配置。

def main():
    """Run administrative tasks."""
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'cutegirl.settings')

该配置在 wsgi.py 文件中也存在,为了便于使用 WSGI 部署 Django 应用程序。

import os

from django.core.wsgi import get_wsgi_application

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'cutegirl.settings')

application = get_wsgi_application()

16.1 配置文件概述

配置文件可以引入其他文件的中的变量,也可以使用简单语法进行动态设置。
Django 除了项目目录中的 settings.py 文件外,还存在一个默认配置文件。该文件存在与 site-packages\django\conf\global_settings.py 文件中。

代码文件头部注释如下:

"""
Default Django settings. Override these with settings in the module pointed to
by the DJANGO_SETTINGS_MODULE environment variable.
"""

在文件中使用 django 配置

在代码文件中引入配置文件,使用的导入代码为: from django.conf import settings ,这里不能采用 from django.conf.settings import 变量 方式进行变量导入,原因在 django 初始化时,将 settings 设置为了对象,代码可以在 \site-packages\django\conf\__init__.py 底部查看到。

settings = LazySettings()

配置文件如果进行了修改,必须重启 django 测试服务器。

16.2 CACHES 缓存

在 django 中定义了项目可以用到的全部缓存, default 是缓存的别名, BACKEND 是缓存的解释引擎。在 global_settings.py 文件中可以直接检索 CACHES 即可找到缓存配置。
缓存的主要价值是在 Django 中,用户请求到达视图 views 后,视图会先从缓存中获取数据,进行动态渲染,渲染后的结果就是用户看到的网页。

CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
    }
}

缓存的 BACKEND 包含如下内容,设置如下:
Memcached 缓存
Memcached 是基于内存的缓存,Django 原生支持的最快最有效的缓存系统。推荐使用 Memcached ,数据缓存在服务器端。
代码可以参考下述内容:

CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
        'LOCATION': '127.0.0.1:11211',
    }
}

数据库缓存

CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.db.DatabaseCache',
        'LOCATION': 'my_cache_table',
}

文件系统缓存
案例以 windows 为参考,其它系统大同小异。

CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache',
        'LOCATION': 'c:\demo\django_cache'
    }
}

本地内存缓存

CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
        'LOCATION': 'unique-snowflake'
    }
}

redis 缓存
默认采用 1 数据库

CACHES = {
    "default": {
        "BACKEND": "redis_cache.cache.RedisCache",
        "LOCATION": "localhost:6379",
        'TIMEOUT': 60
    }
}

16.2.1 CACHES 缓存配置可选参数

缓存配置参数使用在 default 字典中,代码格式如下:

CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
        '配置参数1': '配置参数值',
        '配置参数2': '配置参数值',
        '配置参数3': '配置参数值',
        '配置参数4': '配置参数值'
    }
}

KEY_PREFIX
使用该配置之后,在生成的缓存名称前会自动加上前缀。

TIMEOUT
缓存的默认过期时间,以秒为单位,默认值为 300; TIMEOUT None 表示永远不会过期,值设置成 0 ,缓存立即失效。

LOCATION
缓存地址,依据 BACKEND 不同,配置也不同。

OPTIONS
配合 BACKEND 传递更多的参数。

VERSION
缓存的版本号。

其它内容在应用到的时候,可以进行补充。例如 CACHE_MIDDLEWARE_ALIAS CACHE_MIDDLEWARE_KEY_PREFIX CACHE_MIDDLEWARE_SECONDS

16.3 配置文件中的数据库配置

16.3.1 DATABASES

global_settings.py 文件中, DATABASES 只有一个空字典,但是在项目的 settings.py 中,django 为其初始化了一个值。

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

DATABASES 很容易理解,就是用于指定网站所使用的数据库类型以及连接方式,最外层的是数据库别名,值就是数据库配置信息。

在我们使用初始化命令创建数据库的时候,系统自动初始化了一个 sqlite 类型的数据连接,自然可以基于此使用 Django 自带的后台管理系统。

不过一般在项目中,我们还是会使用 MySQL,Oracle 这些主流的数据库,所以该配置必须要牢牢掌握。

下面是基于 MySQL 的配置信息。

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

配置含义非常简单,直接翻译即可。

  • DATABASE_ENGINE:数据库引擎;
  • DATABASE_NAME:数据库名称;
  • DATABASE_USER:连接用户;
  • DATABASE_PASSWORD:用户密码;
  • DATABASE_HOST:主机名;
  • DATABASE_PORT:数据库端口。

16.3.2 更多的配置

ATOMIC_REQUESTS
如果设置为 True,Django 会把每个视图的数据库操作封装到一个数据库事务中。

AUTOCOMMIT
Django 是否开启事务。

CONN_MAX_AGE
数据库会话的声明周期,默认为 0,表示每次请求结束立刻关闭数据库连接。

OPTIONS
附加参数。

TIME_ZONE
数据库所使用的时区。

TEST
配置测试数据库,关于测试数据库配置支持的参数,可以后续继续扩展学习。

16.4 本篇博客小节

本篇博客带大家进入 Django 文件配置的学习,本文只是其中的一部分,希望能给你提供学习的方向。

相关阅读

  1. Python 爬虫 100 例教程,超棒的爬虫教程,立即订阅吧
  2. Python 游戏世界(更新中,目标文章数 50+,现在订阅,都是老粉)
  3. Python 爬虫小课,精彩 9 讲,只要 9 块 9

今天是持续写作的第 <font color="red">137</font> / 200 天。
如果你想跟博主建立亲密关系,可以关注同名公众号 <font color="red">梦想橡皮擦</font>,近距离接触一个逗趣的互联网高级网虫。
博主 ID:梦想橡皮擦,希望大家<font color="red">点赞</font>、<font color="red">评论</font>、<font color="red">收藏</font>。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/120160
 
349 次点击