一:基本的模板使用
1.指定templates路径:
首先在项目的setting.py中指定:注意,可以选择相对路径
TEMPLATE_DIRS = (
# Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
# Always use forward slashes, even on Windows.
# Don't forget to use absolute paths, not relative paths.
"./reading/templates",
)
# Create your views here.
#from django.http import HttpResponse
#from django.template import loader,Context
from django.shortcuts import render_to_response
'''
def index(req):
<span style="white-space:pre"> </span>#return HttpResponse('hello world!')
<span style="white-space:pre"> </span>t = loader.get_template('index.html')
<span style="white-space:pre"> </span>c = Context({})
<span style="white-space:pre"> </span>return HttpResponse(t.render(c))
'''
def index(req):
<span style="white-space:pre"> </span>return render_to_response('index.html',{})
3.加入index.html
<html>
<title>sidLand</title>
<body>
hello sidland!
</body>
</html>
4.启动项目:正常访问
二:模板中使用变量:
1.修改views中的方法:
# Create your views here.
#from django.http import HttpResponse
#from django.template import loader,Context
from django.shortcuts import render_to_response
'''
def index(req):
#return HttpResponse('hello world!')
t = loader.get_template('index.html')
c = Context({})
return HttpResponse(t.render(c))
'''
class Person(object):
def __init__(self,name,age,sex):
self.name=name
self.age=age
self.sex=sex
def say(self):
return "hello:"+self.name
def index(req):
book_list = ['python','java','php']
user = {'name':'sid','age':13,'sex':'male'}
person = Person('sid_22',22,'male_22')
return render_to_response('index.html',{'title':"my pages","username":"sid","user":user,"person":person,"booklist":book_list})
2.修改html模板:
<html>
<title>{{title}}</title>
<body>
hello {{username}}!
<br/>
{{user.age}}
<br/>
{{person.age}}
<br/>
{{person.say}}
<br/>
{{booklist.0}}
<br/>
优先级如上所示:依次递减
定义的属性、对象的属性、对象的方法、list
</body>
</html>
3.解决中文乱码:
3.1首先:确保你的views文件的编码是utf-8的;至于为什么用utf-8,请自行百度;在views文件的最上方加入:
#coding:utf-8
3.2再次:在html中加入字符编码:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
三:模板中使用标签
在你的模板views中加入新的方法:
def tags(req):
book_list = ['python','java','php']
user = {'name':'sid','age':13,'sex':'male'}
person = Person('sid_22',22,'male_22')
return render_to_response('tags.html',{'title':"Django标签","username":"sid","user":user,"person":person,"booklist":book_list})
在urls中加入新的路径:
url(r'^blog/tags', 'blog.views.tags'),
在templates中加入新的页面:tags.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>{{title}}</title>
</head>
<body>
可以在Django手册中查找<br/>
<a href="https://docs.djangoproject.com/en/1.5/ref/templates/builtins/" target="_blank">https://docs.djangoproject.com/en/1.5/ref/templates/builtins/</a>
<br/>
{% if user %}
{{user.name}}
{% else %}
用户不存在
{% endif %}
<br/>
{% for book in booklist %}
{{book}}
{% endfor %}
<br/>
{% for key in user%}
{{key}}
{% endfor %}
<br/>
{% for k,v in user.items %}
{{forloop.counter}}.{{k}}:{{v}},
{% endfor %}
<br/>
{% for s in users %}
{{s.name}}
{% empty %}
users is empty
{% endfor %}
<br/>
</body>
</html>