Django的settings.py配置文件相关配置

1、HTML模板目录templates

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')] # 指定html文件所在的位置目录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',
            ],
        },
    },
]

 

2、静态文件配置

settings.py末尾添加

# 静态文件夹的别名
STATIC_URL = '/static/'

# 所有静态文件(css/js/图片)都放在我下面你配置的文件夹中
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, "static"),
]

 

3、数据库配置

默认使用sqlite3

使用MySQL的配置方法:

# 数据库相关的配置
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',  # 连接的数据库类型
        'NAME': "db",  # 数据库名称
        'HOST': '127.0.0.1',  # 连接数据库的地址
        'PORT': 3306,  # 端口
        'USER': 'root',  # 用户
        'PASSWORD': '123456'  # 密码
    }
}

 

 由于Django内部连接MySQL时使用的是MySQLdb模块,而python3中还无此模块,所以需要使用pymysql来代替

配置与settings.py同级下的 __init__.py文件(如没有 __init__.py文件需新创建一个)。设置如下:

import pymysql
pymysql.install_as_MySQLdb()    #  告诉Django用pymysql来替换默认的MySQLdb

 

4、APP配置

新创建的APP需要配置,Django才能找到

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'app01.apps.App01Config',  # 配置新增的APP,注:'app01'也可以这样写
]

 

5、配置用户上传文件的默认路径

用户上传的数据会根据该目录,结合UserInfo表中upload_to='avatarDir/' 参数来拼接当前目录

1.用户表models.py 详情

from django.db import models
 
# Create your models here.
from django.contrib.auth.models import AbstractUser
 
class UserInfo(AbstractUser):
    """
    用户信息
    """
 
    nid = models.AutoField(primary_key=True)
    nickname = models.CharField(verbose_name='昵称', max_length=32)
    telephone = models.CharField(max_length=11, blank=True, null=True, unique=True, verbose_name='手机号码')
    avatar = models.FileField(verbose_name='头像', upload_to='avatarDir/', default="avatar/default.png")  # 设置用户上传头像
    create_time = models.DateTimeField(verbose_name='创建时间', auto_now_add=True)
    blog = models.OneToOneField(to='Blog', to_field='nid', null=True)
 
    def __str__(self):
        return self.username
models.py

 

2.settings.py 配置 MEDIA_ROOT 路径

# Django用户上传的都叫media文件
MEDIA_URL = "/media/"
# media配置,用户上传的文件都默认放在这个文件夹下
MEDIA_ROOT = os.path.join(BASE_DIR, "media")

 

3.如需要用户通过Url可以直接访问上传的文件,需要配置 urls.py指定 MEDIA_ROOT 路径

from django.conf.urls import url
from django.contrib import admin
from blog import views
# 需要导入serve和settings配置
from django.views.static import serve  
from django.conf import settings
 
urlpatterns = [
    url(r'^admin/', admin.site.urls),
    # media 配置 图片存储路径可直接访问
    url(r'^media/(?P<path>.*)$', serve, {"document_root":settings.MEDIA_ROOT}),
]

 

 

6、Session配置

1. 数据库Session
SESSION_ENGINE = 'django.contrib.sessions.backends.db'   # 引擎(默认)

2. 缓存Session
SESSION_ENGINE = 'django.contrib.sessions.backends.cache'  # 引擎
SESSION_CACHE_ALIAS = 'default'                            # 使用的缓存别名(默认内存缓存,也可以是memcache),此处别名依赖缓存的设置

3. 文件Session
SESSION_ENGINE = 'django.contrib.sessions.backends.file'    # 引擎
SESSION_FILE_PATH = None                                    # 缓存文件路径,如果为None,则使用tempfile模块获取一个临时地址tempfile.gettempdir() 

4. 缓存+数据库
SESSION_ENGINE = 'django.contrib.sessions.backends.cached_db'        # 引擎

5. 加密Cookie Session
SESSION_ENGINE = 'django.contrib.sessions.backends.signed_cookies'   # 引擎

其他公用设置项:
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,默认修改之后才保存(默认)

 

7、Admin中文界面显示

LANGUAGE_CODE = 'zh-hans'  #修改成中文

TIME_ZONE = 'Asia/Shanghai'  #设置时区

USE_I18N = True

USE_L10N = True

USE_TZ = False    #如果是True就是取国际时间,False 是取本地时间

 

8、时间格式化

USE_L10N = False

DATETIME_FORMAT = 'Y-m-d H:i:s'

DATE_FORMAT = 'Y-m-d'

 

9、终端打印SQL语句

在Django项目的settings.py文件中,在最后复制粘贴如下代码:

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

 

posted @ 2020-12-17 20:47  笑而不语心自闲  阅读(146)  评论(0编辑  收藏  举报