$1.Django 调用模板
1.1 Template、Context方法
包:from django.template import Template,Context
from django.http import HttpResponse
eg:
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)
1.2 get_template、Context方法
包:from django.template.loader import get_template
from django.http import HttpResponse
首先在setting.py文件中配置模板文件夹的路径(在TEMPLATE_DIRS的列表中)
eg:
from django.template.loader import get_template
from django.template import Context
from django.http import HttpResponse
import datetime
def current_datetime(request):
now = datetime.datetime.now()
t = get_template('current_datetime.html')
html = t.render(Context({'current_date': now}))
return HttpResponse(html)
1.3 reder_to_response()方法
包:from django.shortcuts import render_to_response
不需要导入get_template、Template、Context 和 HttpResponse
eg:
from django.shortcuts import render_to_response
import datetime
def current_datetime(request):
now = datetime.datetime.now()
return render_to_response('current_datetime.html', {'current_date': now})
locals()方法:是Python的内建函数,它返回的字典对所有局部变量的名称与值进行映射。
def current_datetime(request):
current_date = datetime.datetime.now()
return render_to_response('current_datetime.html', locals())
1.4 include模板标签
{% include %}:该标签允许在(模板中)包含其他的模板内容。标签的参数是所要包含的模板名称,
可以是一个变量,也可以是用单/双引号硬编码的字符串。
1.5 模板继承
本质上来说,模板继承就是先构造一个基础框架模板,而后在其子模板中对它所半酣站点公用部分和定义块进行重载。
eg:
1)定义基础模板
eg:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="en">
<head>
<title>{% block title %}{% endblock %}</title>
</head>
<body>
<h1>My helpful timestamp site</h1>
{% block content %}{% endblock %}
{% block footer %}
<hr>
<p>Thanks for visiting my site.</p>
{% endblock %}
</body>
</html>
2)继承基础模板
eg:
{% extends "base.html" %}
{% block title %}The current time{% endblock %}
{% block content %}
<p>It is now {{ current_date }}.</p>
{% endblock %}
1.1 Template、Context方法
包:from django.template import Template,Context
from django.http import HttpResponse
eg:
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)
1.2 get_template、Context方法
包:from django.template.loader import get_template
from django.http import HttpResponse
首先在setting.py文件中配置模板文件夹的路径(在TEMPLATE_DIRS的列表中)
eg:
from django.template.loader import get_template
from django.template import Context
from django.http import HttpResponse
import datetime
def current_datetime(request):
now = datetime.datetime.now()
t = get_template('current_datetime.html')
html = t.render(Context({'current_date': now}))
return HttpResponse(html)
1.3 reder_to_response()方法
包:from django.shortcuts import render_to_response
不需要导入get_template、Template、Context 和 HttpResponse
eg:
from django.shortcuts import render_to_response
import datetime
def current_datetime(request):
now = datetime.datetime.now()
return render_to_response('current_datetime.html', {'current_date': now})
locals()方法:是Python的内建函数,它返回的字典对所有局部变量的名称与值进行映射。
def current_datetime(request):
current_date = datetime.datetime.now()
return render_to_response('current_datetime.html', locals())
1.4 include模板标签
{% include %}:该标签允许在(模板中)包含其他的模板内容。标签的参数是所要包含的模板名称,
可以是一个变量,也可以是用单/双引号硬编码的字符串。
1.5 模板继承
本质上来说,模板继承就是先构造一个基础框架模板,而后在其子模板中对它所半酣站点公用部分和定义块进行重载。
eg:
1)定义基础模板
eg:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="en">
<head>
<title>{% block title %}{% endblock %}</title>
</head>
<body>
<h1>My helpful timestamp site</h1>
{% block content %}{% endblock %}
{% block footer %}
<hr>
<p>Thanks for visiting my site.</p>
{% endblock %}
</body>
</html>
2)继承基础模板
eg:
{% extends "base.html" %}
{% block title %}The current time{% endblock %}
{% block content %}
<p>It is now {{ current_date }}.</p>
{% endblock %}