调用settings.py的配置信息作为全局使用

项目中一些比较零散的信息可以保存在数据库,也可以保存在settings.py里面

 
并且这些变量也可以像引用数据里面的数据使用,
 
 
可以把信息保存在settings.py里面,也可以保存在数据表当中
设置在settings里面等于是相当于设置全局变量
在views.py当中引用
先import django.conf import settings
通过这种方式引用:site_name = settings.SITE_NAME
不过这种方式引用太麻烦
可以直接定义一个函数,将settings内容读取出来,进行输出
def global_setting():
return{'SITE_NAME':settings.SITE_NAME,
'SITE_DESC':settings.SITE_DESC,
}
把这个方法加到settings.py里面的TEMPLATES的OPTIONS的上下文处理器这个配置
在这个处理器执行的时候,每个页面都可以用到,
'blog.views.global_setting',
于是我可以直接在模板当中调用global里面的变量,字典的名字
如html当中
SITE_NAME
 
 
把index和archive里面相同的代码提取出来放到global_settings里面
 
def global_setting(request):
#分类信息获取(导航数据)
category_list = Category.objects.all()
#文章归档数据
archive_list = Article.objects.distinct_date()
return {
'category_list':category_list,
'archive_list':archive_list,
'SITE_NAME':settings.SITE_NAME,
'SITE_DESC':settings.SITE_DESC,
}
还有一些数据也可以放到global_settings里面
如:广告数据,标签云数据,友情链接数据,文章排行榜数据
 
 
 
 
 
 
 
 
 
 
 





原文地址:https://www.cnblogs.com/wuqingzangyue/p/5749493.html