VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 编程开发 > python爬虫 >
  • python爬虫之Django 基础教程 - 模板(2)

本站最新发布   Python从入门到精通|Python基础教程
试听地址  
https://www.xin3721.com/eschool/pythonxin3721/


如上所示用{{...}}或者{%...%}来替代python代码的方式就是模板,像第一个{{person_name}}其实就是一个变量,而{%for....%}或者{% if ...%}等就是循环。先不去深究上面的代码的意思,我们下面一步一步来学习怎么使用它。

1
2
3
4
5
6
7
8
>>>from djangoimport template
>>> t= template.Template('My name is {{ name }}.')
>>> c= template.Context({'name':'Adrian'})
>>>print(t.render(c))
My nameis Adrian.
>>> c= template.Context({'name':'Fred'})
>>>print(t.render(c))
My nameis Fred.

 

当你看到上面的代码时你可能会急不可耐的去尝试,结果在第二行却出现了错误。一般来说唯一可能出现的错误就是:'DJANGO_SETTINGS_MODULE'error,这是因为Django搜索DJANGO_SETTINGS_MODULE环境变量时,它被设置在settings.py中,而直接启动python shell就会导致它不知道用哪个配置文件。例如,假设mysite在你的Python搜索路径中,那么DJANGO_SETTINGS_MODULE应该被设置为:’mysite.settings’。所以为了免去设置环境变量的麻烦,我们应该这样启动python shell。

python manage.py shell

这样可以免去你大费周章地去配置那些你不熟悉的环境变量。

下面我们来分析下那段代码。

1
2
3
4
5
6
7
8
>>>from djangoimport template #从django中导入template对象
>>> t= template.Template('My name is {{ name }}.'#使用template对象的Template()方法
>>> c= template.Context({'name':'Adrian'}) #使用template对象的Context()函数给赋值,比如name的值就是Adrian,Context()的()里面是一个字典
>>>print(t.render(c))  #渲染模板,也就是讲Context赋值后的name的值Adrian替换上面Template()中的{{name}}并输出
My nameis Adrian.
>>> c= template.Context({'name':'Fred'})
>>>print(t.render(c))
My nameis Fred.

 

从上面的例子可以看出,使用模板的三步。一、调用Template函数;二、调用Context函数;三、调用render函数。就这么简单。

 

下面我们再通过几个代码来说说Context()函数。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#代码段1:
>>>from django.templateimport Template,Context
>>> t=Template('hello,{{name}}')
>>>for namein ('A','B','C'):
...    print(t.render(Context({'name':name})))
...
hello,A
hello,B
hello,C
#代码段2:
>>>from django.templateimport Template,Context
>>> person={'name':'Thunder','age':'108'}
>>> t=Template('{{person.name}} is {{person.age}} years old!')
>>> c=Context({'person':person})#后面的这个person是一个字典
>>> t.render(c)
'Thunder is 108 years old!'
#代码段3:
>>>from django.templateimport Template,Context
>>> t=Template('Item 2 is {{items.2}}')#items.2的意思是调用items列表的第3个元素,因为列表的索引是从0开始的
>>> c=Context({'items':['Apple','Banana','Orange']})
>>> t.render(c)
'Item 2 is Orange'
相关教程