django入门与学习-django的模板文件-2

本文介绍了如何在Django项目中创建并使用模板,包括基本的HTML模板创建、使用对象和类填充模板、传递列表以及调用对象的方法等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

昨天成功的搭建了django开发环境并进行了测试,然而简单的输出‘Hello World’对程序开发并没有实质性的帮助。今天我们在昨天的基础上来讲一讲django的模板应用,进一步加深对django的学习与理解。

1.创建templates文件夹,使用模板生成xhtml文件。

博主在Ubuntu16.10下使用Bluefish这款编辑器,该软件有强大的模板和联想功能,和windows下的Editplus有的一拼。
在blog/文件夹下创建templates文件夹,注意单词末尾有’s’才能被django识别

》cd blog
》mkdir templates

之后我们使用bluefish的xhtml1.0模板在templates下生成index1.html,区别index.html。html代码如下:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>{{title}}</title>
</head>
<body>
<h1>hello {{user}}</h1>
</body>
</html>

生成完成之后,我们修改blog/下的views.py让它使用我们刚刚生成的index1.html。

from django.shortcuts import render_to_response

def index(req):
    return render_to_response('index1.html',{'title':'my page','user':'Franky'}

这里我们使用字典在django的模板中填充数据,在根目录调用

python3 manage.py runserver

运行后出现如下效果:
运行截图1

2.进阶1-使用对象填充模板

上面的操作弱爆了,传个字符和姓名在网页上并没有用,在这里我们尝试写个简单的对象,使用该对象填充模板。

  • 在blog/views.py里创建对象,使用该对象填充字典
 from django.shortcuts import render_to_response

def index(req):
    user = {'name':'hepeng','gender':'male','age':'23'} 
    return render_to_response('index1.html',{'title':'my page','user':user})
  • 在blog/templates/index1.html里设置对应的位置:
 <?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>{{title}}</title>
</head>
<body>
<h1>hello {{user.name}}</h1>
<h1>your sex is {{user.gender}}</h1>
<h1>your age is {{user.age}}</h1>
</body>
</html>
  • 运行结果如下图所示:
    运行截图2

3.进阶2-使用类生成对象填充字典

  • 修改后的blog/views.py代码如下
from django.shortcuts import render_to_response
class Person(object):
     def __init__(self,name,age,sex):
         self.name = name
         self.age = age
         self.gender = sex

def index(req):
    #user = {'name':'hepeng','gender':'male','age':'23'}    
    user = Person('Franky',23,'male')
    return render_to_response('index1.html',{'title':'my page','user':user})
  • 运行结果和上图中的大致相同,只是name一行变成了Franky,此处不在截图。

4.进阶3-传递列表

话不多说,直接放码过来。

  • blog/views.py代码如下
from django.shortcuts import render_to_response
lang_list = ['python','C++','java','go','c#']

def index(req):
    return render_to_response('index1.html',{'title':'my page','list':lang_list}


- blog/templates/index1.html代码如下

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>{{title}}</title>
</head>
<body>
<li>{{list.0}}</li>
<li>{{list.1}}</li>
<li>{{list.2}}</li>
<li>{{list.3}}</li>
<li>{{list.4}}</li>
</body>
</html>
  • 运行效果如下如所示:

运行截图3

5.进阶4.调用传递对象的方法

我们传入一个user对象,调用user对象中的say方法完成输出。参考代码如下:

from django.shortcuts import render_to_response
class Person(object):
    def __init__(self,name):
        self.name = name
    def say(self):
        return 'I\'am '+ self.name

def index(req):
    user = Person('hepeng')
    return render_to_response('index1.html',{'title':'my page','user':user})    
<body>
<h1>{{user.say}}</h1>
</body>

程序比较简单,运行结果就不在这里截图了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值