73django之setting配置汇总

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了73django之setting配置汇总相关的知识,希望对你有一定的参考价值。

前面的随笔中我们经常会改setting配置也经常将一些配置混淆今天主要是将一些常见的配置做一个汇总。

 

setting配置汇总

1、app路径

INSTALLED_APPS = [
    django.contrib.admin,
    django.contrib.auth,
    django.contrib.contenttypes,
    django.contrib.sessions,
    django.contrib.messages,
    django.contrib.staticfiles,
    app1.apps.App1Config,   
    # 默认已有 如果没有只要添加app名称即可 例如: ‘app1‘
    # 新建的应用都要在这里添加
]

2、数据库配置

如果使用django的默认sqlite3数据库则不需要改

DATABASES = {
    default: {
        ENGINE: django.db.backends.sqlite3,
        NAME: os.path.join(BASE_DIR, db.sqlite3),
    }
}

如果使用mysql数据库需要将上述数据库注掉修改如下

DATABASES = {
    default: {         
        ENGINE: django.db.backends.mysql,
        NAME: blog,    #你的数据库名称 数据库需要自己提前建好
        USER: root,   #你的数据库用户名
        PASSWORD: ‘‘, #你的数据库密码
        HOST: ‘‘, #你的数据库主机,留空默认为localhost
        PORT: 3306, #你的数据库端口
    }
}

并且需要在应用的__init__.py文件添加

import pymysql
pymysql.install_as_MySQLdb()

详情可以查看:http://www.cnblogs.com/liluning/p/7729607.html

3、sql语句

LOGGING = {
    version: 1,
    disable_existing_loggers: False,
    handlers: {
        console:{
            level:DEBUG,
            class:logging.StreamHandler,
        },
    },
    loggers: {
        django.db.backends: {
            handlers: [console],
            propagate: True,
            level:DEBUG,
        },
    }
} 

当你的操作与数据库相关时 会将我们的写的语句翻译成sql语句在服务端打印。

4、静态文件目录

STATIC_URL = /static/  #调用时目录

STATICFILES_DIRS=[
    os.path.join(BASE_DIR,"static"),  #具体路径
]

5、如果数据库中的UserInfo(用户表)继承django内置AbstractUser

1)model需导入

from django.contrib.auth.models import AbstractUser

2)配置文件

AUTH_USER_MODEL = "应用名.UserInfo"

6、中间件

自己写的中间件,例如在项目中的md文件夹下md.py文件中的M1与M2两个中间件

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,
    md.md.M1,
    md.md.M2,
]

注意自己写的中间件,配置要写在系统中的后面

7、session存储的相关配置

1)数据库配置(默认)

技术分享图片
Django默认支持Session,并且默认是将Session数据存储在数据库中,即:django_session 表中。
  
配置 settings.py
  
    SESSION_ENGINE = django.contrib.sessions.backends.db   # 引擎(默认)
      
    SESSION_COOKIE_NAME = "sessionid"                       # Session的cookie保存在浏览器上时的key,即:sessionid=随机字符串(默认)
    SESSION_COOKIE_PATH = "/"                               # Session的cookie保存的路径(默认)
    SESSION_COOKIE_DOMAIN = None                             # Session的cookie保存的域名(默认)
    SESSION_COOKIE_SECURE = False                            # 是否Https传输cookie(默认)
    SESSION_COOKIE_HTTPONLY = True                           # 是否Session的cookie只支持http传输(默认)
    SESSION_COOKIE_AGE = 1209600                             # Session的cookie失效日期(2周)(默认)
    SESSION_EXPIRE_AT_BROWSER_CLOSE = False                  # 是否关闭浏览器使得Session过期(默认)
    SESSION_SAVE_EVERY_REQUEST = False                       # 是否每次请求都保存Session,默认修改之后才保存(默认)
View Code

2)缓存配置

技术分享图片
 配置 settings.py
  
    SESSION_ENGINE = django.contrib.sessions.backends.cache  # 引擎
    SESSION_CACHE_ALIAS = default                            # 使用的缓存别名(默认内存缓存,也可以是memcache),此处别名依赖缓存的设置
  
  
    SESSION_COOKIE_NAME = "sessionid"                        # Session的cookie保存在浏览器上时的key,即:sessionid=随机字符串
    SESSION_COOKIE_PATH = "/"                                # Session的cookie保存的路径
    SESSION_COOKIE_DOMAIN = None                              # Session的cookie保存的域名
    SESSION_COOKIE_SECURE = False                             # 是否Https传输cookie
    SESSION_COOKIE_HTTPONLY = True                            # 是否Session的cookie只支持http传输
    SESSION_COOKIE_AGE = 1209600                              # Session的cookie失效日期(2周)
    SESSION_EXPIRE_AT_BROWSER_CLOSE = False                   # 是否关闭浏览器使得Session过期
    SESSION_SAVE_EVERY_REQUEST = False                        # 是否每次请求都保存Session,默认修改之后才保存
View Code

3)默认配置

技术分享图片
配置 settings.py
  
    SESSION_ENGINE = django.contrib.sessions.backends.file    # 引擎
    SESSION_FILE_PATH = None                                    # 缓存文件路径,如果为None,则使用tempfile模块获取一个临时地址tempfile.gettempdir()        
    SESSION_COOKIE_NAME = "sessionid"                          # Session的cookie保存在浏览器上时的key,即:sessionid=随机字符串
    SESSION_COOKIE_PATH = "/"                                  # Session的cookie保存的路径
    SESSION_COOKIE_DOMAIN = None                                # Session的cookie保存的域名
    SESSION_COOKIE_SECURE = False                               # 是否Https传输cookie
    SESSION_COOKIE_HTTPONLY = True                              # 是否Session的cookie只支持http传输
    SESSION_COOKIE_AGE = 1209600                                # Session的cookie失效日期(2周)
    SESSION_EXPIRE_AT_BROWSER_CLOSE = False                     # 是否关闭浏览器使得Session过期
    SESSION_SAVE_EVERY_REQUEST = False                          # 是否每次请求都保存Session,默认修改之后才保存
View Code

注意:

1)也可以自定义配置 但是自定义的配置都要写到配置文件最后 代码中使用时可以导入配置

from django.conf import settings
settings.配置名

2)上面所有配置都是针对特定问题需要修改的 系统默认配置不做说明

3)上面配置只是前面django系列随笔所遇到的常用配置 后续所遇配置都会逐步在此随笔中持续添加跟新

 

以上是关于73django之setting配置汇总的主要内容,如果未能解决你的问题,请参考以下文章

django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESPACE的解决办法(转)(代码片段

Django setting设置 常用设置

Django之配置文件(settings.py)

[Django框架之模板层]

Django之静态文件配置

Django详解之models操作