最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

Django基础教程-模板

来源:懂视网 责编:小采 时间:2020-11-27 14:28:42
文档

Django基础教程-模板

Django基础教程-模板:注明:python版本为3.3.1、Django版本为1.5.1,操作系统为Windows7,其他版本有一些不同的地方读者可以自行探讨。在上一章你可能已经发现了这样的问题,就是在视图返回文本的时候,HTML代码被硬编码在了python的代码中。如%s等等。像这样写往往使得程序更加
推荐度:
导读Django基础教程-模板:注明:python版本为3.3.1、Django版本为1.5.1,操作系统为Windows7,其他版本有一些不同的地方读者可以自行探讨。在上一章你可能已经发现了这样的问题,就是在视图返回文本的时候,HTML代码被硬编码在了python的代码中。如%s等等。像这样写往往使得程序更加

注明:python版本为3.3.1、Django版本为1.5.1,操作系统为Windows7,其他版本有一些不同的地方读者可以自行探讨。

在上一章你可能已经发现了这样的问题,就是在视图返回文本的时候,HTML代码被硬编码在了python的代码中。如%s等等。像这样写往往使得程序更加复杂,一旦修改起来又显得十分的麻烦,而且HTML代码程序员不见得会python代码,现在的开发一般都会使得HTML前台页面和Python后台分离,也就是前台只负责显示页面,后台只负责处理数据和其他操作。因此,模板显得尤为重要。

那么,什么是模板呢?

模板是一个文本,用于分离文档的表现形式和内容。 模板定义了占位符以及各种用于规范文档该如何显示的各部分基本逻辑(模板标签)。 模板通常用于产生HTML,但是Django的模板也能产生任何基于文本格式的文档。下面我们从一个简单的例子来学习下什么是模板。(这个例子源自DjangoBook2)

 Ordering notice
 
 

Ordering notice

Dear {{ person_name }},

Thanks for placing an order from {{ company }}. It's scheduled to ship on {{ ship_date|date:"F j, Y" }}.

Here are the items you've ordered:

{% for item in item_list %}
  • {{ item }}
  • {% endfor %} {% if ordered_warranty %}

    Your warranty information will be included in the packaging.

    {% else %}

    You didn't order a warranty, so you're on your own when the products inevitably stop working.

    {% endif %}

    Sincerely,
    {{ company }}

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

    >>> from django import template
    >>> t = template.Template('My name is {{ name }}.')
    >>> c = template.Context({'name': 'Adrian'})
    >>> print(t.render(c))
    My name is Adrian.
    >>> c = template.Context({'name': 'Fred'})
    >>> print(t.render(c))
    My name is 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

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

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

    >>> from django import 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 name is Adrian. >>> c = template.Context({'name': 'Fred'}) >>> print(t.render(c)) My name is Fred.

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

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

    #代码段1:
    >>> from django.template import Template,Context
    >>> t=Template('hello,{{name}}')
    >>> for name in ('A','B','C'):
    ... print(t.render(Context({'name':name})))
    ...
    hello,A
    hello,B
    hello,C
    #代码段2:
    >>> from django.template import 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.template import 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'

    注意:上面的items.2不能是items.-1或者其他什么负数索引。

    好好观察上面三段代码,是不是就举一反三了呢?另外默认情况下,如果一个变量不存在,模板系统会把它展示为空字符串,不做任何事情来表示失败。

    声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文档

    Django基础教程-模板

    Django基础教程-模板:注明:python版本为3.3.1、Django版本为1.5.1,操作系统为Windows7,其他版本有一些不同的地方读者可以自行探讨。在上一章你可能已经发现了这样的问题,就是在视图返回文本的时候,HTML代码被硬编码在了python的代码中。如%s等等。像这样写往往使得程序更加
    推荐度:
    标签: 教程 dj 模板
    • 热门焦点

    最新推荐

    猜你喜欢

    热门推荐

    专题
    Top