Django设置文件包含你所有的Django安装配置。这个文件一般在你的项目文件夹里。比如我们创建了一个名为mysite的项目,那么这个配置文件setting.py就在项目里的mysite文件夹里。

下面列表一些常用的settings配置供参考。

1.配置静态文件

#STATIC_URL = '/static/'为静态文件别名
STATIC_URL = '/static/'
#静态文件地址拼接,后面'static'文件为自己建立的存放静态文件(JS,IMG,CSS)的文件名
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'static'), #主文件下静态文件
os.path.join(BASE_DIR,"blog","statics"),#项目blog文件下静态文件
)

2、mysql数据库配置

########在setting原来默认的sqlite
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
############修改成mysql如下
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'test', #你的数据库名称
'USER': 'root', #你的数据库用户名
'PASSWORD': '123', #你的数据库密码
'HOST': '', #你的数据库主机,留空默认为localhost
'PORT': '3306', #你的数据库端口
}}
#由于mysql默认引擎为MySQLdb,在__init__.py文件中添加下面代码
#在python3中须替换为pymysql,可在主配置文件(和项目同名的文件下,不是app配置文件)中增加如下代码
import pymysql
pymysql.install_as_MySQLdb()
#如果找不到pymysql板块,则通过pip install pymysql进行安装。

3、设置打印日志到屏幕

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

4、语言

LANGUAGE_CODE = 'en-us'# 默认
LANGUAGE_CODE = 'zh-hans'# 改为中文,主要针对admin页面

5、配置模板路径

TEMPLATE_DIRS = (
os.path.join(BASE_DIR,'templates'),
)
#然后在项目根目录下添加templates文件夹

6、注册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名称即可 例如: 'blog'
# 新建的应用都要在这里添加
]

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

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

1)models导入

from django.contrib.auth.models import AbstractUser

2)settings.py导入

AUTH_USER_MODEL = "应用名.UserInfo"

9、中间件,自己写的中间件

例如在项目中的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',
]

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

10、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,默认修改之后才保存(默认)

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,默认修改之后才保存

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,默认修改之后才保存

11、配置文件上传目录

#设置文件上传路径
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media/')

如果想在浏览器里访问自己上传的文件则需要在urls.py做如下设置:

from django.views.static import serve
from django.conf import settings urlpatterns = [
...
re_path('^media/(?P<path>.*)$', serve, {'document_root': settings.MEDIA_ROOT}),
]

参考自:https://blog.csdn.net/weixin_47649808/article/details/126366676

最新文章

  1. Exploit利用学习1:MS09-001
  2. rz和sz上传下载文件工具lrzsz
  3. 扩展 IEnumerable&lt;T&gt;,让它根据另一个集合的顺序来排列
  4. Servlet的学习(四)
  5. robot framework -记录错误
  6. Ant学习总结1
  7. xgboost-python参数深入理解
  8. tcpdump 使用实践
  9. 输入和输出--javase中的路径
  10. 网络流 E - Escape HDU - 3605
  11. SQL 概述
  12. VS code自定义用户代码片段snippet
  13. javascript对属性的操作
  14. mac下pycharm快捷键
  15. 03 事务,连接池DBCP,C3P0,DBUtils
  16. UI设计初学者教程:色彩基础知识
  17. 通过Yum快速部署LAMP与LNMP
  18. 工程化框架之feather
  19. 如何快速访问MSDN某一个类或方法的帮助文档
  20. JavaScript中实现DI的原理

热门文章

  1. 让CSS flex布局最后一行列表左对齐的N种方法
  2. ModuleNotFoundError:No module named &#39;past&#39; 问题及解决方法
  3. vue实现随机生成图形验证码
  4. Kittle 插入更新,时间格式错误。
  5. DEV 导出多行头
  6. Web学习篇—Http协议
  7. 禁止Edge升级
  8. c--&gt;extern关键字的使用
  9. 第八章用matplotlib、seaborn、pyecharts绘制散点图
  10. Spark 中三种数据处理对象的区别: RDD-Dataset-Dataframe