当前位置:首页 > Python技术文章 > django开发之settings.py中变量的全局引用详解

django开发之settings.py中变量的全局引用效果示例

  • 发布时间:
  • 作者:码农之家原创
  • 点击:132

这篇文章主要知识点是关于django、settings.py、全局引用、变量全局引用、Django自带日志 settings.py文件配置方法 的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下相关资源

Python神经网络编程

这是一本自己动手用Python编写神经网络的力作,详细介绍了理解神经网络如何工作所必须的基础知识,并介绍了所需的微积分知识和树莓派知识,欢迎下载

查看详情

django开发之settings.py中变量的全局引用详解

本文主要介绍的是django中settings.py中变量的全局引用的相关资料,下面话不多说,来看看详细的介绍吧。

前言

在settings.py中添加自定义变量,可以通过setting.(点)变量名的方式访问,如:

from django.conf import settings
site_name = settings.SITE_NAME
site_desc = settings.SITE_DESC

但是,如果遇到了一些频繁访问的变量,如:邮箱,网站标题,网站的描述,这样访问就很不方便。

解决方法如下:

1、首先在settings.py中添加对应的变量:

#网站信息
SITE_NAME="hupeng的个人博客"
SITE_DESC="pyhon爱好者,希望和大家一起学习,共同进步"

2、在view中定义函数,返回包含settings配置文件中的变量

from django.conf import settings
def global_settings(request):
 return {"SITE_NAME": settings.SITE_NAME,
   "SITE_DESC": settings.SITE_DESC}

注意:函数中需要添加参数request,否则会出现以下错误:

django开发之settings.py中变量的全局引用详解

3、在setting.py中的TEMPLATES中的OPTIONS配置项中添加global_settings函数

django开发之settings.py中变量的全局引用详解

4、修改模板,通过键名的方式直接访问对应的变量

django开发之settings.py中变量的全局引用详解

5、最终效果:

django开发之settings.py中变量的全局引用详解

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家学习或者使用python能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对码农之家的支持。

Django自带日志 settings.py文件配置方法

Django settings.py文件配置部分:

# logging配置
log_file = '/home/nagain/learn/log'
log_file_path = os.path.join(log_file, 'all.log')
if not os.path.exists(log_file):
 os.mkdir(log_file)
 os.mknod(log_file_path) # 创建空文件
 
LOGGING = {
 'version': 1,
 'disable_existing_loggers': True,
 'formatters': {
  # 日志格式
  'standard': {
   'format': '%(asctime)s [%(threadName)s:%(thread)d] [%(name)s:%(lineno)d] '
      '[%(module)s:%(funcName)s] [%(levelname)s]- %(message)s'
  }
 },
 'filter': {
 
 },
 'handlers': {
  'mail_admins': {
   'level': 'ERROR',
   'class': 'django.utils.log.AdminEmailHandler',
   'include_html': True,
  },
  'default': {
     'level': 'DEBUG',
     'class': 'logging.handlers.RotatingFileHandler',
     'filename': log_file_path,   # 日志输出文件
     'maxBytes': 1024*1024*5,     # 文件大小
     'backupCount': 5,       # 备份份数
     'formatter': 'standard',     #使用哪种formatters日志格式
  },
  'error': {
     'level': 'ERROR',
     'class': 'logging.handlers.RotatingFileHandler',
     'filename': log_file_path,
     'maxBytes': 1024*1024*5,
     'backupCount': 5,
     'formatter': 'standard',
    },
  'console': {
     'level': 'DEBUG',
     'class': 'logging.StreamHandler',
     'formatter': 'standard'
    },
  'request_handler': {
     'level': 'DEBUG',
     'class': 'logging.handlers.RotatingFileHandler',
     'filename': log_file_path,
     'maxBytes': 1024*1024*5,
     'backupCount': 5,
     'formatter': 'standard',
    },
  'scprits_handler': {
     'level': 'DEBUG',
     'class': 'logging.handlers.RotatingFileHandler',
     'filename': log_file_path,
     'maxBytes': 1024*1024*5,
     'backupCount': 5,
     'formatter': 'standard',
    }
 },
 'loggers': {
  'django': {
     'handlers': ['default', 'console'], # 来自上面定义的handlers内容
      'level': 'INFO',
     'propagate': False # 是否继承父类的log信息
  },
  'scripts': {
   'handlers': ['scprits_handler'],
   'level': 'INFO',
   'propagate': False
  },
  # sourceDns.webdns.views 应用的py文件
  'sourceDns.webdns.views': {
     'handlers': ['default', 'error'],
     'level': 'INFO',
     'propagate': True
  },
  'sourceDns.webdns.util': {
     'handlers': ['error'],
     'level': 'ERROR',
     'propagate': True
  },
  # 'django.request': {
  #    'handlers': ['mail_admins'],
  #    'level': 'ERROR',
  #    'propagate': False,
  #   },
 }
}

项目视图函数views.py使用实例:

# 日志
import logging
logger = logging.getLogger('sourceDns.webdns.views') # 获取settings.py配置文件中logger名称
def index(request):
 a = reverse('index:article')
 logger.info(a)
 return HttpResponseRedirect(a)

注意:错误日志记录级别level

级别 描述
CRITICAL 50 关键错误/消息
ERROR 40 错误
WARNING 30 警告消息
INFO 20 通知消息
DEBUG 10 调试
NOTSET 0 无级别

注意:记录器 handler

关键字参数 描述
filename 将日志消息附加到指定文件名的文件
filemode 指定用于打开文件模式
format 用于生成日志消息的格式字符串
datefmt 用于输出日期和时间的格式字符串
level 设置记录器的级别
stream 提供打开的文件,用于把日志消息发送到文件。

注意: format日志消息显示格式

格式 描述
%(name)s 记录器的名称
%(levelno)s 数字形式的日志记录级别
%(levelname)s 日志记录级别的文本名称
%(filename)s 执行日志记录调用的源文件的文件名称
%(pathname)s 执行日志记录调用的源文件的路径名称
%(funcName)s 执行日志记录调用的函数名称
%(module)s 执行日志记录调用的模块名称
%(lineno)s

执行日志记录调用的行号

%(created)s 执行日志记录的时间
%(asctime)s 日期和时间
%(msecs)s 毫秒部分
%(thread)d 线程ID
%(threadName)s 线程名称
%(process)d 进程ID
%(message)s 记录的消息

注意: 内置处理器

logging模块提供了一些处理器,可以通过各种方式处理日志消息。使用addHandler()方法将这些处理器添加给Logger对象。另外还可以为每个处理器配置它自己的筛选和级别。

handlers.DatagramHandler(host,port):发送日志消息给位于制定host和port上的UDP服务器。
 
handlers.FileHandler(filename):将日志消息写入文件filename。
 
handlers.HTTPHandler(host, url):使用HTTP的GET或POST方法将日志消息上传到一台HTTP 服务器。
 
handlers.RotatingFileHandler(filename):将日志消息写入文件filename。如果文件的大小超出maxBytes制定的值,那么它将被备份为filename1。

*****以上内容也是自己查询通过自己测试是可行的,如果想要了解更加详细,请自行查看神器(django官方文档)*****

这篇Django自带日志 settings.py文件配置方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持码农之家。

以上就是本次给大家分享的关于Python的全部知识点内容总结,大家还可以在下方相关文章里找到Python3.6及TensorFlow的安装和、 《Python编程:从入门到实、 在Qt中设置窗体的背景图片、 等python文章进一步学习,感谢大家的阅读和支持。

上一篇:Django前后台数据传递的实例方法

下一篇:Python中glob模块查找文件路径的实例方法

展开 +

收起 -

settings.py中变量的全局引用 相关内容
树莓派Python编程入门与实战

《树莓派Python编程入门与实战》经典系列 直观 循序渐进的树莓派Python编程学习教程 强调实践教学 以示例引导读者完成常见的任务。

查看详情
Keras快速上手:基于Python的深度学习实战

本书系统地讲解了深度学习的基本知识、建模过程和应用,并以深度学习在推荐系统、图像识别、自然语言处理、文字生成和时间序列中的具体应用为案例,详细介绍了从工具准备、数据获取和

查看详情
实战Python网络爬虫

实战Python网络爬虫 配套源码 从爬虫工具开发设计到动手做开发设计网络爬虫架构 从基本原理到实践活动,从入门到精通,受欢迎网络爬虫关键技术全把握 包含丰富多彩的爬虫工具、库、架构

查看详情
Python编程基础

本书以任务为导向的编写模式,全面介绍了Python编程基础及其相关知识的应用,以及如何利用Python的知识解决部分实际问题

查看详情
零起点Python大数据与量化交易

零起点Python大数据与量化交易 是国内较早关于Python大数据与量化交易的原创图书,配合zwPython开发平台和zwQuant开源量化软件学习,是一套完整的大数据分析、量化交易的学习教材,可直接用于

查看详情
Python3完全零基础入门精讲[3.98G]全套视频教程

互联网课(查看更多详细信息):在线课程能够考虑大伙儿随时学习培训的必须,相对性更加随意灵便些,学生能够随意分配学习培训時间,让大伙儿的学习培训已不遭受時间、地址的约束力,学员碰到难题能够不断听不断思量、还可以根据答疑解惑板来将所碰到难题开展答疑解惑。互联网课中合适力量薄弱或学习培训時间比较有限,要想高效率复习的零基础学生。 这2个课程学习从最基本的Python英语的语法刚开始,详细介绍了Python数据统计分析、统计

查看详情
你也能看得懂的Python算法书

很杰出:凝聚力4位创作者10年程序编写工作经验,陪你理解优化算法的精粹 很趣味:全书选用栩栩如生幽默的語言,让优化算法已不好学 很实战演练:全书包含36个案例,9类别优化算法,很有

查看详情
settings.py中变量的全局引用 学习笔记
网友NO.516726

Django框架之登录后自定义跳转页面的实现方法

Django auth 登陆后页面跳转至/account/profile,修改跳转至其他页面 这几天在学习django,django功能很强大,自带的auth,基本可以满足用户注册登陆登出,简单的用户注册登陆系统使用django auth足矣。当然也不是拿来就能用的,需要自己写登陆页面的模板,也很简单。自己尝试了一下,发现一个问题,当验证登陆成功后,页面会自动跳转到/account/profile,我并不想把页面跳转到这个页面,如何修改呢? 查了一堆网页,还是官网靠谱,很简单,就在project的setting里加一句话就Okay! LOGIN_REDIRECT_URL = ‘/index' 我这里是指定登陆成功后跳转到index页面,朋友们可以根据自己需要进行修改。就这样就okay啦!欢呼吧,然后接着解决别的问题! ======================================================================================================================================================== Django 跳转和重定向……

网友NO.745206

浅谈django orm 优化

orm优化 1.数据库技术进行优化,包括给字段加索引,设置唯一性约束等等; 2.查询过滤工作在数据库语句中做,不要放在代码中完成(看情况); 3.如果要一次查询出集合的数量,使用count函数,而不是len函数,但是如果后面还需要到集合,那就用len,因为count还需要进行一次数据库的操作; 4.避免过多的使用count和exists函数; 5.如果需要查询对象的外键,则使用外键字段而不是使用关联的外键的对象的主键; 例子: a.b_id # 正确a.b.id # 错误 6.在通过all语句查询时,不要做跨表查询,只查询当前表中有的数据,否则查询语句的性能会下降很多; 比如:a表存在外键b表 a.b.all() # 错误 7.如果想要查询其他表的数据,则加上select_related(ForeignKey字段名,其实就是主动联表查询,性能也会下降),如果有多个,则在括号中加上; 8.加only参数是从查询结果中只取某个……

网友NO.849209

Apache,wsgi,django 程序部署配置方法详解

本文实例讲述了Apache,wsgi,django 程序部署配置方法。分享给大家供大家参考,具体如下: 前面写过一篇文章,ngixn,uwsgi,django,python 环境配置,有兴趣的朋友可以参考 nginx,django部署 后来有人在QQ上问我,用Apache 好部署吗?我当时只在windows下用 APACHE2.3,django1.4,wsgi 部署过,还没有在 linux 下部署。前几天有时间,我在 centos 上测试部署了一下。也不难。唯一的差别是,在windows 下有已经编译好的 wsgi.so 文件,放到 apache 的 modules下,然后在 httpd.conf 中增加 LoadModule wsgi_module modules/mod_wsgi.so 但是在 linux 下,wsgi的安装,都要在源码编译下安装,而且还有几点要注意的。下面就详细介绍我部署的过程。 安装python 2.7 或者你需要的版本 这个就简单带过了,下载安装包之后,windows 可以直接 运行安装包,linux 下 最好编译安装吧。这一步可以参考我上面提到的文章,我已……

网友NO.800411

python中如何用Django连接数据库(图文)

本篇文章给大家带来的内容是关于python中如何用Django连接数据库(图文),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 form表单提交数据的三个要素: 1. form表单标签必须要有action和method属性;action键的值表示html页面中信息的提交地址, method键的值表示用什么方法提交 2. 所有获取用户输入的标签必须放在form表单中,必须要有name属性;name键的值表示要提交的信息 3. 必须要有submit按钮. request相关属性: request是指浏览器给服务端发送的请求. 1. request.method --返回的是请求的方法(全大写):GET POST... 注意:观看method源码得知: 在HTML页面中经常会有 method='post' 之类的对method规定获取值时为小写,此时大小写都可以,当从method中取值时,'upper'会把method中的请求方法全部大写. 2. request.GET --取得URL里的参数,类似于字典的数据结构(如果用get方法提交……

<
1
>

Copyright 2018-2020 xz577.com 码农之家

本站所有电子书资源不再提供下载地址,只分享来路

免责声明:网站所有作品均由会员网上搜集共同更新,仅供读者预览及学习交流使用,下载后请24小时内删除

版权投诉 / 书籍推广 / 赞助:QQ:520161757