Django项目全局信息配置教程

  • A+
所属分类:Django学习

区别于传统的一些开源CMS系统(如DEDE仿站教程 里面用到的dede就是系统提供的),后台固定的一些参数,而Django并没有提供,且去整理这个内容会是很麻烦的事情,在搞一套授权系统的时候,就想着后台给其固定值,方便客户修改,但是后面一直没找到相关教程,所以弃置。

配置教程

1、在项目的setting.py文件中加入你需要配置的内容

  1. # 全局配置信息配置
  2. SITE_TITLE = '李金龙,菜鸟的互联网技术分享博客'
  3. SITE_TITLE_MORE = '李金龙'
  4. SITE_KEY = '李金龙'
  5. SITE_DES = '李金龙,温故而知新,将所学所得梳理出来,帮助自己在以后的道路上可以对比曾经的自己。'
  6. SITE_URL = 'https://www.lijinlong.cc/'
  7. SITE_QQ = '342422610'
  8. SITE_WEIBO = 'http://weibo.com/678801176'
  9. SECRET_WEIXIN = '15295070800'

上述的内容已经配置了一些基础的信息,方便不同的页面来直接调用使用,命名规则可以百度搜索下驼峰命名法。

一个SEO小知识要传播下,在上面定义了两个标题,SITE_TITLE和SITE_TITLE_MORE,一个为首页使用,一个为其他页使用。

如:首页:李金龙,菜鸟的互联网技术分享博客

分类页:Django - 李金龙

内容页:Django项目全局信息配置教程 -  李金龙

而不是:

分类页:Django - 李金龙,菜鸟的互联网技术分享博客

内容页:Django项目全局信息配置教程 - 李金龙,菜鸟的互联网技术分享博客

至于为什么,可以百度看看相关教程。

 

2、全局配置引用

  • 在任意一个APP views.py中引入以下内容
  1. from django.conf import settings
  • 在上面的文件中定义一个方法,读取全局配置内容,并读取内容
  1. # 全局配置调用
  2. def global_setting():
  3.     return {
  4.         'SITE_TITLE': settings.SITE_TITLE,
  5.         'SITE_TITLE_MORE': settings.SITE_TITLE_MORE,
  6.         'SITE_KEY': settings.SITE_KEY,
  7.         'SITE_DES': settings.SITE_DES,
  8.         'SITE_URL': settings.SITE_URL,
  9.         'SITE_QQ': settings.SITE_QQ,
  10.         'SITE_WEIBO': settings.SITE_WEIBO,
  11.         'SECRET_WEIXIN': settings.SECRET_WEIXIN,
  12.     }

3、在项目配置文件setting.py文件中,在TEMPLATES下的OPTIONS下的context_processors中加入APP的方法。

  1. TEMPLATES = [
  2.     {
  3.         'BACKEND': 'django.template.backends.django.DjangoTemplates',
  4.         'DIRS': [os.path.join(BASE_DIR, 'templates')]
  5.         ,
  6.         'APP_DIRS': True,
  7.         'OPTIONS': {
  8.             'context_processors': [
  9.                 'django.template.context_processors.debug',
  10.                 'django.template.context_processors.request',
  11.                 'django.contrib.auth.context_processors.auth',
  12.                 'django.contrib.messages.context_processors.messages',
  13.                 'blog.views.global_setting'  # 这里是增加的内容
  14.             ],
  15.         },
  16.     },
  17. ]

4、模板调用

  1. <title>{{ SITE_TITLE }}</title>
  2. <meta name="keywords" content="{{ SITE_KEY }}"/>
  3. <meta name="description" content="{{ SITE_DES }}"/>

直接在模板中使用其名称即可,注意规则{{定义的字典名称}}一定要注意大小写

 

 

李金龙

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: