基于Django1.11配置文件settings.py

import os
import sys # Build paths inside the project like this: os.path.join(BASE_DIR, ...)
# 这里用到了python中一个神奇的变量"__file__",这个变量可以获取到当前文件的路径(含文件名)
# 再来一个os.path.dirname()就是获得上一级目录
# "BASE_DIR"就是工程根目录
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) # 如果包含外部的App或者多个App放在一个目录里,一般需要把这个目录右键Mark成Source Root后,可能还需要将其添加到Python路径中,否则运行manage.py会报错No module named 'xx'.
# 比如"extraapps"是外部APP上级目录Python包(需Mark成Source Root)
# 1)sys.path.insert(0, 'path'):定义搜索路径的优先顺序,序号从0开始,表示最大优先级,属于临时搜索路径,程序退出后失效
# 2)sys.path.append('path'):与insert()类似,只不过这是追加方式
# 如:sys.path.append(os.path.join(BASE_DIR, 'extraapps')) # Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/1.11/howto/deployment/checklist/ # 产品密钥。创建Django项目时自动分配的产品密钥,请使用原自动分配的产品密钥替换此行!!
SECRET_KEY = 'ug4o-53gk-tuxn@@69g_jr8aqq%&e183kr=xw6reg7247&jam=' # 上线时必须将DEBUG设为False
DEBUG = True # 指定被访问的主机。若元素为'*',表示所有同一局域网内的网络均可被访问
ALLOWED_HOSTS = ['localhost', '127.0.0.1'] # App注册。新建的app务必在此注册!
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
# 'polls', # 我的APP
# 'django.contrib.humanize', # 人类可读性过滤器
# 'django.contrib.sitemaps', # 网站地图
] # 自定义的auth APP的User模型,继承抽象模型AbstractUser
# AUTH_USER_MODEL = 'appname.UserModelName' # 自定义的用户登录验证后端,继承ModelBackend类,重写authenticate()方法
# AUTHENTICATION_BACKENDS = ['apps.myuser.views.CustomBackend', ] # 中间件
MIDDLEWARE = [
# 'django.middleware.cache.UpdateCacheMiddleware', # 缓存更新,必须在第一个!
'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', # 依赖于会话Session
'django.middleware.clickjacking.XFrameOptionsMiddleware', # 防止点击劫持
# 'django.middleware.cache.FetchFromCacheMiddleware', # 缓存读取,必须在最后一个!
] ROOT_URLCONF = 'mysite.urls' # URL路由主文件,这里需要据实修改 TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')], # 公共模板
'APP_DIRS': True,   # 多个APP分别建立自己的模板路径,方法同静态文件(见后文)
'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',
],
},
},
] WSGI_APPLICATION = 'mysite.wsgi.application' # 这里需要据实修改 # 数据库。可配置多个,"default"为必须,但可以为空
# https://docs.djangoproject.com/en/1.11/ref/settings/#databases
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
} # 多数据库路由。写入自定义的路由Router类路径,为空则使用"default"数据库
DATABASE_ROUTERS = [] # 密码验证
# https://docs.djangoproject.com/en/1.11/ref/settings/#auth-password-validators
AUTH_PASSWORD_VALIDATORS = [
{
'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
},
] # 国际化
# https://docs.djangoproject.com/en/1.11/topics/i18n/
LANGUAGE_CODE = 'en-us' # 中文简体是'zh-hans',Admin后台管理系统的页面语言随之改变 # 本地时间
TIME_ZONE = 'Asia/Shanghai'
USE_I18N = True
USE_L10N = True
USE_TZ = False # 若使用了本地时间,必须设为False!!(默认值True) # 邮箱服务配置
EMAIL_HOST = 'xxx.com.cn' # 发送者邮箱服务器
EMAIL_PORT = 25
EMAIL_HOST_USER = '' # 发送者用户名(邮箱地址)
EMAIL_HOST_PASSWORD = '' # 发送者密码
EMAIL_USE_SSL = False    # 默认值False # 静态文件配置 (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.11/howto/static-files/
# 静态文件的访问目录,自动指向"STATIC_ROOT"或"STATICFILES_DIRS"的目录值。用于程序中,如{% static '静态文件指向目录下的子路径' %}
# 这里的静态文件URL,即/static/通常用于模板中调用,另外也用于Apache或Nginx配置文件中的静态文件访问配置(生产策略!)
# 模板调用示例:{% static 'images/123.jpg' %}
STATIC_URL = '/static/'
# 这里的静态文件ROOT是生产环境根目录!仅用于生产!当运行"python manage.py collectstatic"的时候,会自动将STATICFILES_DIRS以及各APP中static的所有的文件复制收集到STATIC_ROOT
# 把这些文件放到一起是为了用Apache、Nginx等上线部署的时候更方便
STATIC_ROOT = os.path.join(BASE_DIR, 'static') # 多个APP的静态文件配置。不能与STATIC_ROOT冲突!先在各个APP下新建static文件夹,然后把JS、CSS、Image等静态文件放在该文件夹下,例如:apps/app1/static/js(css,images)、apps/app2/static/js(css,images)等
# STATICFILES_DIRS = [os.path.join(BASE_DIR, 'apps', 'app1', 'static'), os.path.join(BASE_DIR, 'apps', 'app2', 'static'), ] # 媒体文件(用户上传的文件)配置,类似于上面的静态文件配置
# 不能像静态文件那样调用,而是先在settings中进行模板配置,即在"TEMPLATES"中的"context_processors"里添加'django.template.context_processors.media'
# (调试策略!手动指定视图访问media文件目录,部署生产请注释掉) 添加URL路由,如:url(r'^media/(?P<path>.*)$', static.serve, {'document_root': settings.MEDIA_ROOT})
# 模板调用示例:{{ MEDIA_URL }}{{ modelobj.fieldname }}
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media') # 缓存后端配置(Django支持许多开箱即用的缓存后端)
# Django默认缓存后端是本地内存(LocMemCache)。虚拟DummyCache用于开发(实际上并不缓存,它只是实现缓存接口而不做任何事情。)
# Django支持的缓存类型:Memcached(MemcachedCache)、本地内存(LocMemCache)、数据库(DatabaseCache)、文件(FileBasedCache)、虚拟(DummyCache)
# Memcached缓存数据库下载与安装教程:http://www.runoob.com/memcached/window-install-memcached.html(菜鸟教程提供)
# 下载安装Memcached本身后,您还需要安装Memcached绑定模块。最常见的两个绑定模块是python-memcached和pylibmc(pip安装)
# 设置缓存后端后,使用缓存的方式:最简单是缓存整个站点(如下)、缓存每个视图(使用装饰器@cache_page(expire, cache='default'))等
# 在中间件列表中的[开头]和[末尾]添加如下2个中间件:'django.middleware.cache.UpdateCacheMiddleware'和'django.middleware.cache.FetchFromCacheMiddleware'
# 测试,进入Python shell:
# >>> from django.core.cache import cache
# >>> cache.set('test', 'successful', 60) 第一个参数是key,第二个参数value,第三个参数是过期时间(秒)
# >>> cache.get('test')               其他方法:set_many(),get_many(),delete(),delete_many(),clear()
# CACHES = {
# 'default': {
# 'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache', # 取决于您选择的Memcached绑定
# 'LOCATION': ['127.0.0.1:11211', ], # 缓存后端服务器位置,支持分布式,可多个
# 'TIMEOUT': 5 * 60, # 缓存超时,默认300s
# 'OPTIONS': {
# 'server_max_value_length': 2 * 1024 * 1024, # 缓存最大值(这里的键值根据缓存类型不同而变化,一般默认也可)
# },
# 'CACHE_MIDDLEWARE_ALIAS': 'DJCACHE', # 用于存储的缓存别名
# 'CACHE_MIDDLEWARE_SECONDS': 5 * 60, # 每个页面应缓存的秒数
# 'CACHE_MIDDLEWARE_KEY_PREFIX': '', # 缓存键前缀。如果使用相同的Django在多个站点之间共享缓存,将其设置为站点名称(或其他)以防止发生密钥冲突
# }
# } # 会话使用的缓存(CACHES),默认"default"
# SESSION_CACHE_ALIAS = "default"
# 会话缓存期限,默认2周
# SESSION_COOKIE_AGE = 1209600
# 会话生存期设置,浏览器关闭,则会话失效(可能对Chrome浏览器无效)。在登录视图get请求中添加语句"request.session.set_expiry(0)",对Chrome会有效
SESSION_EXPIRE_AT_BROWSER_CLOSE = True # 默认False

  至此,转载请注明出处。

[ 本站相关链接:>>Django部署 ]

Django 配置文件settings注解(含静态文件和上传文件配置)的更多相关文章

  1. Django积木块三——静态文件和上传文件

    静态文件和上传的文件 # 静态文件 STATIC_URL = '/static/' STATICFILES_DIRS = ( os.path.join(BASE_DIR, 'static'), ) # ...

  2. html下载文件和上传文件(图片)(java后台(HttpServlet))打开保存路径和选择文件录取+(乱码UTF-8)+包

    下载文件: //通过路径得到一个输入流 String path = "获取需要下载的文件路径"; //path.lastIndexOf(".")+1可以获取文件 ...

  3. Ajax上传数据和上传文件(三种方式)

    Ajax向后端发送数据可以有三种方式:原生Ajax方式,jQuery Ajax方式,iframe+form 方式(伪造Ajax方式) <!DOCTYPE html> <html la ...

  4. [实战]MVC5+EF6+MySql企业网盘实战(12)——新建文件夹和上传文件

    写在前面 之前的上传文件的功能,只能上传到根目录,前两篇文章实现了新建文件夹的功能,则这里对上传文件的功能进行适配. 系列文章 [EF]vs15+ef6+mysql code first方式 [实战] ...

  5. 基于Ubuntu Server 16.04 LTS版本安装和部署Django之(三):设置上传文件夹权限(这里测试用完全共享)

    基于Ubuntu Server 16.04 LTS版本安装和部署Django之(一):安装Python3-pip和Django 基于Ubuntu Server 16.04 LTS版本安装和部署Djan ...

  6. IDEA远程连接和上传文件到服务器

    公司电脑是win,所以远程控制服务器就不能用之前自己笔记本ubuntu自带的终端了. 后来在万能的群友的提醒下,IDEA本身就自带了远程功能,摸索了一下,使用IDEA连接服务器并且可以上传文件了. 这 ...

  7. Struts2框架下的文件上传文件类型、名称约定

    Struts2框架下的文件上传机制:1.通过multipart/form-data form提交文件到服务器2.文件名是通过什么地方设置的?在strust2的FileUploadInterceptor ...

  8. [转]ExtJs入门之filefield:文件上传的配置+结合Ajax完美实现文件上传的asp.net示例

    原文地址:http://www.stepday.com/topic/?459 作文一个ExtJs的入门汉子,学习起来的确是比较费劲的事情,不过如今在这样一个网络资源如此丰富的时代,依然不是那么难了的. ...

  9. django 配置文件settings.py 设置模板

    INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'dj ...

随机推荐

  1. How JavaScript works: an overview of the engine, the runtime, and the call stack

    https://blog.sessionstack.com/how-does-javascript-actually-work-part-1-b0bacc073cf

  2. Java 容器 & 泛型:四、Colletions.sort 和 Arrays.sort 的算法

    Writer:BYSocket(泥沙砖瓦浆木匠) 微博:BYSocket 豆瓣:BYSocket 本来准备讲 Map集合 ,还是喜欢学到哪里总结吧.最近面试期准备准备,我是一员,成功被阿里在线笔试秒杀 ...

  3. 【EF6学习笔记】(十二)EF高级应用场景

    本篇原文链接:Advanced Entity Framework Scenarios 本篇主要讲一些使用Code First建立ASP.NET WEB应用的时候除了基础的方式以外的一些扩展方式方法: ...

  4. kubernetes的安装

    获取源码 最新安装包下载地址,GitHub下载地址 本次实验的1.10.0的二进制包下载,百度网盘 机器环境 Kubernetes Roles IP地址 Hostname Master 192.168 ...

  5. zepto 事件分析3(add函数)

    在上一篇的分析中,最后$.on方法返回了一个add方法函数的执行,在这里先看一下其代码: function add(element, events, fn, data, selector, deleg ...

  6. 南大算法设计与分析课程复习笔记(1) L1 - Model of computation

    一.计算模型 1.1 定义: 我们在思考和处理算法的时候是机器无关.实现语言无关的.所有的算法运行在一种“抽象的机器”之上,这就是计算模型. 1.2 种类 图灵机是最有名的计算模型,本课使用更简单更合 ...

  7. Url的Base64编码以及解码

    Base64可以将二进制转码成可见字符方便进行http传输,但是base64转码时会生成“+”,“/”,“=”这些被URL进行转码的特殊字符,导致两方面数据不一致.我们可以在发送前将“+”,“/”,“ ...

  8. C#计算字符串长度,汉字算两个字符

    在C#中的字符串类String中,有个Length属性表示字符串的长度,但该字段返回的是字符的个数,如果字符串中含有中文字符的话,一个汉字占用两个字符的长度,此时获取的长度就不够精确,当然也看具体业务 ...

  9. 【转载】ASP.NET生成图片的缩略图

    图片处理是C#程序开发中时常会涉及到的一个业务,除了图像的上传.保存以及下载等功能外,根据上传的图片生成一个缩略图也是常见业务,在C#语言中,可以通过Image类提供的相关方法对图片进行操作,如指定宽 ...

  10. 【转载】 C#工具类:使用iTextSharp操作PDF文档

    iTextSharp是一个用于操作PDF文件的组件DLL程序,在C#程序中可以引用iTextSharp组件,用于开发与PDF文件相关的报表等功能,利用iTextSharp组件提供出来的方法接口,我们可 ...