Django学习笔记(二)Django使用template

来源:互联网 发布:iphone蜂窝数据设置 编辑:程序博客网 时间:2024/05/16 10:33

一:基本的模板使用

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",)


2.修改reading.views中的index方法:

# Create your views here.#from django.http import HttpResponse#from django.template import loader,Contextfrom 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,Contextfrom 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=nameself.age=ageself.sex=sexdef say(self):return "hello:"+self.namedef 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>




0 0
原创粉丝点击