四、Django设置相关
1、全局设置
setttings文件
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,Mark成Source Root后可能还需要添加如下配置,否则运行manage.py会报错No module named 'xx'
# "extraapps"是外部APP上级目录包(Mark成Source Root)
# sys.path.insert(0, 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加载
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
# 'blog', # 我的APP ] # 自定义的auth APP的User模型,继承抽象模型AbstractUser
# AUTH_USER_MODEL = 'appname.UserModelName' # 自定义的用户登录验证类,继承ModelBackend类,重写authenticate()方法
# AUTHENTICATION_BACKENDS = ['apps.myuser.views.CustomBackend', ] # 中间件
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',
] ROOT_URLCONF = 'firstapp.urls' # 这里系统会自动生成,一般不需要修改。 TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [],
'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',
],
},
},
] WSGI_APPLICATION = 'firstapp.wsgi.application' # 这里需要据实修改,系统会自动生成。 # 数据库设置,默认为sqlite
# 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'),
}
} # 用户验证
# 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 # 静态文件配置 (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.11/howto/static-files/ # 静态文件的访问,用于程序中,如{{static '静态文件目录下的子路径'}}
STATIC_URL = '/static/' # 静态文件的公用目录,但不能与STATIC_ROOT冲突!
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')] # 静态文件的生产环境根目录,当运行"python manage.py collectstatic"的时候,会将STATICFILES_DIRS以及各app中static的所有的文件复制收集到STATIC_ROOT
# 把这些文件放到一起是为了用Apache等上线部署的时候更方便
# 需要配置URL,如"url(r'^static/(?P<path>.*)$', serve, {'document_root': settings.STATIC_ROOT})"
# STATIC_ROOT = os.path.join(BASE_DIR, 'collectstatic').replace('\\', '/') # 媒体文件(用户上传的文件)配置
# 不能像静态文件那样调用,而是先配置"TEMPLATES"中的"context_processors"添加'django.template.context_processors.media';
# 然后配置URL,如"url(r'^media/(?P<path>.*)$', serve, {'document_root': settings.MEDIA_ROOT})";
# 调用示例:{{ MEDIA_URL }}{{ modelobj.fieldname }}
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media').replace('\\', '/') # Django日志配置
# LOGGING = {
# 'version': 1, # 指明dictConnfig的版本
# 'disable_existing_loggers': False, # 禁用所有的已经存在的日志配置
#
# # 格式器
# 'formatters': {
# 'standard': { # 详细
# 'format': '\n时间:[%(asctime)s]\t级别:[%(levelname)s]\t文件名:[%(filename)s]\t方法:[%(funcName)s]\t行数:[%(lineno)d]\t日志消息:\n[%(message)s]\n\n------------------------------------------------------------',
# },
# 'simple': { # 简单
# 'format': '时间:%(asctime)s | %(levelname)s | %(message)s',
# },
# },
#
# # 过滤器
# 'filters': {
# 'require_debug_true': {
# '()': 'django.utils.log.RequireDebugTrue',
# },
# },
#
# # 处理器,在这里定义了三个处理器
# 'handlers': {
# 'file_handler': { # 文件处理器,所有高于(包括)level的消息会被保存到"filename"
# 'level': 'INFO',
# 'class': 'logging.FileHandler',
# 'formatter': 'standard',
# 'filename': 'E:/PythonProj/mydjsite/log/file.log',
# },
# 'console': { # 控制台处理器,所有的高于(包括)level的消息会被传到控制台,使用的是standard格式器
# 'level': 'INFO',
# 'class': 'logging.StreamHandler',
# 'formatter': 'standard',
# # 'filters':['require_debug_true'],
# },
# 'mail_admins': { # AdminEmail处理器,所有高于(包括)而level的消息会被发送给站点管理员,使用的是standard格式器
# 'level': 'ERROR',
# 'class': 'django.utils.log.AdminEmailHandler',
# 'formatter': 'standard',
# # 'filters': ['require_debug_true'],
# },
# },
#
# # 记录器
# 'loggers': {
# 'django': { # 使用file_handler处理器,所有高于(包括)level的消息会被发往file_handler和console处理器
# 'handlers': ['file_handler', 'console', 'mail_admins'],
# 'level': 'INFO',
# 'propagate': False, # 是否继承父类的log信息
# },
# 'django.request': { # 记录与处理请求相关的消息。5XX错误被记录为ERROR消息;4XX错误记录为WARNING消息
# 'handlers': ['file_handler', 'console', 'mail_admins'],
# 'level': 'INFO',
# 'propagate': False,
# },
# 'django.server': { # 记录开发服务器下处理请求相关的消息。只用于开发阶段
# 'handlers': ['file_handler', 'console', 'mail_admins'],
# 'level': 'INFO',
# 'propagate': False,
# },
# 'django.db.backends': { # 与数据库交互的代码相关的消息
# 'handlers': ['file_handler', 'console', 'mail_admins'],
# 'level': 'INFO',
# 'propagate': False,
# },
# 'myproject.custom': { # 自定义处理器
# 'handlers': ['file_handler', 'console', 'mail_admins'],
# 'level': 'INFO',
# 'propagate': False,
# },
# }
# } # 缓存配置,下方一般限开发者用
# 可以缓存于内存(locmem.LocMemCache)或文件(filebased.FileBasedCache)
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.dummy.DummyCache',
}
} # 会话生存期设置,浏览器关闭,则会话失效(可能对Chrome浏览器无效)
# 在登录视图get请求中添加语句"request.session.set_expiry(0)",对Chrome会有效
SESSION_EXPIRE_AT_BROWSER_CLOSE = True
全局设置完成后,对应的db、templates、static路径系统都会认识或生成。
2、路由系统设置
urls文件
在一个project项目有多个app的情况下,我倾向于把urls单独于每个app,即:
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^blog/', include('blog.urls')),
]
上面就是把blog开头的url定向到blog.urls下面去解析:
from django.conf.urls import url
from . import views urlpatterns = [
url('^hello/', views.hello),
]
3、视图函数
# Create your views here.
from django.http import HttpResponse def hello(request):
return HttpResponse("Hello, world. You're at the index.")
4、访问URL
至此,一个基本的Django应用就跑起来了。
5、后台管理配置
创建管理员账号之前,我们必须先生存admin数据库。
创建账号:
登录后台管理:
至此,后台管理完成。
6、连接数据库设置
首先连接数据接时,会有错误:
产生这个错误的原因是缺少JDBC驱动文件,需要额外安装。
然后在pycharm页面点击数据库查看对应的表结构:
至此,数据库连接设置完成。
四、Django设置相关的更多相关文章
- Django 设置cookies与获取cookies.
在Django里面,使用Cookie和Session看起来好像是一样的,使用的方式都是request.COOKIES[XXX]和request.session[XXX],其中XXX是您想要取得的东西的 ...
- Django 模板相关
Django 模板相关 视图函数只是直接返回文本,而在实际生产环境中其实很少这样用,因为实际的页面大多是带有样式的HTML代码,这可以让浏览器渲染出非常漂亮的页面.目前市面上有非常多的模板系统,其中最 ...
- 仿酷狗音乐播放器开发日志二十四 选项设置窗体的实现(附328行xml布局源码)
转载请说明原出处,谢谢~~ 花了两天时间把仿酷狗的选项设置窗体做出来了,当然了只是做了外观.现在开学了,写代码的时间减少,所以整个仿酷狗的工程开发速度减慢了.今天把仿酷狗的选项设置窗体的布局代码分享出 ...
- 【详记MySql问题大全集】四、设置MySql大小写敏感(踩坑血泪史)
系列目录 一.安装MySql 二.安装并破解Navicat 三.没有my.in配置文件怎么办 四.设置MySql的大小写敏感 五.重置MySql登陆密码 这一篇可以说是我的踩坑的血泪史了... MyS ...
- django设置并获取cookie/session,文件上传,ajax接收文件,post/get请求及跨域请求等的方法
django设置并获取cookie/session,文件上传,ajax接收文件等的方法: views.py文件: from django.shortcuts import render,HttpRes ...
- django 设置静态文件,static
django 设置静态文件,static 一.搜集静态文件 1.1 命令行查看 collectstatic guoguos-MacBook-Pro:mysite guoguo$ python mana ...
- UWP入门(四)--设置控件样式
原文:UWP入门(四)--设置控件样式 官方定义:可以使用 XAML 框架通过多种方式自定义应用的外观. 通过样式可以设置控件属性,并重复使用这些设置,以便保持多个控件具有一致的外观. 可分享至不同e ...
- 【Matlab开发】matlab中norm范数以及向量点积、绘图设置相关
[Matlab开发]matlab中norm范数以及向量点积.绘图设置相关 标签(空格分隔): [Matlab开发] 声明:引用请注明出处http://blog.csdn.net/lg125915677 ...
- linux终端命令(四)系统信息相关命令(五)其他命令
四.系统信息相关命令 时间和日期 date cal 磁盘和目录空间 df du 进程信息 ps top kill 1.时间和日期 序号 命令 作用 01 cal 查看日历,-y选项可以查看一年的日历 ...
随机推荐
- 【[SDOI2014]数表】
求 \[\sum_{i=1}^N\sum_{j=1}^Mσ(gcd(i,j))[σ(gcd(i,j))<=a]\] \(σ\)表示约数和函数 感觉非常难求的样子 先把套路搞出来 \[f(n)=\ ...
- ubuntu ibus 输入法总在左下角不跟随光标的处理
sudo apt-get install ibus-gtk ibus-gtk3 ibus-qt4 参考文章
- 2、Web Service-术语
1.Java中的Web Service规范 三种规范:JAXM&SAAJ.JAX-WS(JAX-RPC).JAX-RS. 三要素:soap,wsdl,uddi 1. Jaxws(掌握) JAX ...
- JavaScript编写简单的增加与减少元素
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- activiti获取到流程图节点信息之任务节点
//获取bpmnModel对象 BpmnModel model1 = new BpmnJsonConverter().convertToBpmnModel(modelNode); //由于我们这里仅仅 ...
- DBA手记(学习)-library cache pin
select sid,event,p1raw from v$session_wait where event like 'library cache pin%'; select sql_text fr ...
- flask中的蓝图实现模块化的应用
Blueprint 蓝图的基本设想是当它们注册到应用上时,它们记录将会被执行的操作. 当分派请求和生成从一个端点到另一个的 URL 时,Flask 会关联蓝图中的视图函数. 简单来说,Blueprin ...
- cookie、localstorage、sessionstorage区别
localstorage sessionsorage cookie 大小 浏览器不能保存超过300个cookie,单个服务器不能超过20个,每个cookie不能超过4k 可以达到5M 可以达到5M ...
- SQL 查询某时间段的数据 datadiff 计算时间差
datediff语法格式:datediff(day,开始时间,结束时间) 一.应用举例: 上面的代码,将查询 'created_time' > '2016-09-20' 的所有记录. 如果要查 ...
- python中Excel表操作
python中关于excel表个的操作 使用 python中的xlwt和xlrd模块进行操作 # 2003之前:Excel:xls# 2003之后:Excel:xlsx# xlrd:读取的模块:xls ...