|
Оглавление
|
Вы изучили основы использования шаблонной системы. Теперь давайте используем эти знания для создания представления. Вспомните представление current_datetime из модуля mysite.views, с которого мы начали предыдущую главу. Вот как оно выглядит: from django.http import HttpResponse
import datetime
def current_datetime(request):
now = datetime.datetime.now()
html = "<html><body>It is now %s.</body></html>" % now
return HttpResponse(html)
Внесём изменения в это представление, чтобы оно стало использовать шаблонную систему Django. Сначала вы можете подумать о чём-то подобном: from django.template import Template, Context
from django.http import HttpResponse
import datetime
def current_datetime(request):
now = datetime.datetime.now()
t = Template("<html><body>It is now {{ current_date }}.</body></html>")
html = t.render(Context({'current_date': now}))
return HttpResponse(html)
Конечно, такой подход использует шаблонную систему, но не решает проблемы, которые мы описали в начале этой главы. А именно, шаблон всё ещё внедрён в код. Исправим это, поместив шаблон в отдельный файл, который будет использоваться этим представлением.
Сначала вы можете рассмотреть вариант сохранения шаблона в
каком-нибудь файле на файловой системе и затем использовать
стандартную для Python функциональность для загрузки содержимого
этого шаблона. Ниже показан такой вариант, предполагается, что
шаблон находится в файле
from django.template import Template, Context
from django.http import HttpResponse
import datetime
def current_datetime(request):
now = datetime.datetime.now()
# Simple way of using templates from the filesystem.
# This doesn't account for missing files!
fp = open('/home/djangouser/templates/mytemplate.html')
t = Template(fp.read())
fp.close()
html = t.render(Context({'current_date': now}))
return HttpResponse(html)
Такой подход, тем не менее, не элегантен по следующим причинам:
Для решения подобных проблем мы будем использовать загрузку шаблонов и каталоги шаблонов, которые описаны в этой главе далее. |
Увидели ошибку?
Выделите её мышкой и нажмите
-
Обработано:
511
49
130
71
Версия книги
1.0
2.0
Версия 2.0 в процессе перевода!
Мой луч
Многообразие света
Полезное
Актуальные вакансии,
Python работа
для python-разработчиков.
Скачать в формате
CHM от 2 сентябряЗаказать PDF файл можно через почту, чат, джаббер. Всего 2WMZ. Содержимое точно соответствует содержимому сайта. Чем чаще заказываете — тем больше перевожу. Русская группа
Ускорить процесс перевода!
R130494980980
Z425285133788 E112528079659 U327380922061 Книга помогла реализовать:
|
| © 2008-2009 Ruslan Popov @ gmail.com | Powered by Django 1.1 beta 1 SVN-11114 |