Простым способом было бы использовать фреймворк PHP, такой как CodeIgniter или Laravel , которые имеют встроенные функции, такие как фильтрация и активная запись, так что вам не нужно беспокоиться об этих нюансах.
Django обеспечивает доступ к определенным, часто используемым константам настроек к шаблону такой как settings.MEDIA_URL
и некоторые настройки языка, если Вы используете django's, созданный в универсальных представлениях, или передаете в аргументе ключевого слова экземпляра контекста в render_to_response
функция ярлыка. Вот пример каждого случая:
from django.shortcuts import render_to_response
from django.template import RequestContext
from django.views.generic.simple import direct_to_template
def my_generic_view(request, template='my_template.html'):
return direct_to_template(request, template)
def more_custom_view(request, template='my_template.html'):
return render_to_response(template, {}, context_instance=RequestContext(request))
Эти представления будут оба иметь несколько часто используемых настроек как settings.MEDIA_URL
доступными шаблону как {{ MEDIA_URL }}
, и т.д.
, Если Вы будете искать доступ к другим константам в настройках, затем просто распакуете константы, Вы хотите и добавляете их к словарю контекста, как который Вы используете в своей функции представления, так:
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)
Теперь можно получить доступ settings.FAVORITE_COLOR
на шаблоне как {{ favorite_color }}
.
Если бы это - значение, требуется иметь для каждого запроса & шаблон, с помощью процессор контекста является более соответствующим.
Вот то, как:
Делают context_processors.py
файл в Вашем каталоге приложения. Скажем, я хочу иметь эти ADMIN_PREFIX_VALUE
значение в каждом контексте:
from django.conf import settings # import the settings file
def admin_media(request):
# return the value you want as a dictionnary. you may add multiple values in there.
return {'ADMIN_MEDIA_URL': settings.ADMIN_MEDIA_PREFIX}
добавляют Ваш процессор контекста к Вашему файл settings.py :
TEMPLATES = [{
# whatever comes before
'OPTIONS': {
'context_processors': [
# whatever comes before
"your_app.context_processors.admin_media",
],
}
}]
Использование RequestContext
в Вашем представлении для добавления процессоров контекста в шаблоне. render
ярлык делает это автоматически:
from django.shortcuts import render
def my_view(request):
return render(request, "index.html")
и наконец, в Вашем шаблоне:
...
<a href="{{ ADMIN_MEDIA_URL }}">path to admin media</a>
...