在用django 框架開發 python web 程序的時候 , 在模板頁面常常會用到 settings.py 中設置的常量,好比MEDIA_URL, 我嘗試過在模板頁面用相似以下的方式
程序代碼
{{CONSTANT_NAME}}
但 是,是沒有效果的,後來只好採用了RequestContext 的方法,起始就是在 render_to_response 的時候,將settings.py 中常量,再次添加到一個 context 中去實現,這樣在頁面就能用另一個名字去訪問了,感受很彆扭,我的以爲確定還有更簡單的方法,只是沒找到而已。下面是實現方法
程序代碼
from django.conf import settings
from django.shortcuts import render_to_response
def my_view_function(request, template='my_template.html'):
context = {'favorite_color': settings.FAVORITE_COLOR}
return render_to_response(template, context)
這樣就能經過在模板中使用 {{ favorite_color }} 來訪問 settings.FAVORITE_COLOR 的值了。
方法二,在國外的網站上看到的,用自定義tag 的方式來實現.
程序代碼
from django import template
from django.conf import settings
register = template.Library()
# settings value
@register.simple_tag
def settings_value(name):
return getattr(settings, name, "")
使用方法
程序代碼
{% settings_value "LANGUAGE_CODE" %}
關於在django 框架中自定義 tag 的方法,能夠參考另外一篇文章 :
django 自定義 tag
src:html
http://www.yihaomen.com/article/python/407.htm