Django学习(三) 之 模板中标签的使用

这篇具有很好参考价值的文章主要介绍了Django学习(三) 之 模板中标签的使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

写在前面

最近看到稀土掘金在搞2023年终总结征文活动,一直想尝试投稿试试,周末我就花了近一下午时间写完初稿,然后周一、周二完成精读再改稿,感觉OK,昨晚凌晨第一时间在稀土掘金投稿。

结果,又发生了同样的事情。

Django学习(三) 之  模板中标签的使用

同样的文章,在博客园上、公号上阅读量很OK,在稀土掘金上就上不来。

Django学习(三) 之  模板中标签的使用

Django学习(三) 之  模板中标签的使用

这应该是我博客园第四次上榜一了把,也是是第二次找到运营大大了,我都有点不好意思了,我好不容易鼓起勇气想投个稿,结果尴尬,不过后来运营大大也帮忙上推荐了,但是值得一说的是吗,这个掘金阅读量上不来,是我写的不行吗?回头我好好总结下,做个复盘。

先不想了,还是接着更文吧。

模板中标签的使用

DjangoMVC思想,模板是一个文本,用于分离文档的表现形式和内容,而不是将数据与视图混合在一起
先创建静态文件,在mycontent/templates/下创建template_demo.html,暂时先不修改如内容,在django_project/settings.py,修改为如下代码:

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [BASE_DIR+"/mycontent/templates",],   # 默认为[]
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

1、模板标签变量的使用

template_demo.html添加如下代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>TEMPLATE_DEMO</title>
</head>
<body>
 <p>variables_demo: {{ name }}</p>
</body>
</html>

mycontent/views.py中添加代码如下:

def variables_demo(request):
    name = 'variables_demo'
    return render(request, 'template_demo.html', {'name': name})

django_project/urls.py中添加代码如下:

urlpatterns = [
    path("index/", views.index),
    re_path('^$', views.index),
    url('^$', views.index),
    url('^my_content/$', views.my_content),
    url('^my_content/page=(\d+)$', views.pagehelper),
    url('variables_demo/', views.variables_demo)
]

效果如下:

Django学习(三) 之  模板中标签的使用

2、模板标签列表的使用

template_demo.html添加如下代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>TEMPLATE_DEMO</title>
</head>
<body>
 <p>variables_demo: {{ name }}</p>
 <p>list_demo: {{ list }}</p>
</body>
</html>

mycontent/views.py中添加代码如下:

def list_demo(request):
    list = ['list1','list2','list3']
    return render(request, 'template_demo.html', {'list': list})

django_project/urls.py中添加代码如下:

urlpatterns = [
    path("index/", views.index),
    re_path('^$', views.index),
    url('^$', views.index),
    url('^my_content/$', views.my_content),
    url('^my_content/page=(\d+)$', views.pagehelper),
    url('variables_demo/', views.variables_demo),
    url('list_demo/', views.list_demo)
]

效果如下:

Django学习(三) 之  模板中标签的使用

3、模板标签字典的使用

template_demo.html添加如下代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>TEMPLATE_DEMO</title>
</head>
<body>
 <p>variables_demo: {{ name }}</p>
 <p>list_demo: {{ list }}</p>
 <p>dict_demo: {{ dict }}</p>
</body>
</html>

mycontent/views.py中添加代码如下:

def dict_demo(request):
    dict_demo = {'dict': 'dict_demo'}
    return render(request, 'template_demo.html', {'dict': dict_demo})

django_project/urls.py中添加代码如下:

urlpatterns = [
    path("index/", views.index),
    re_path('^$', views.index),
    url('^$', views.index),
    url('^my_content/$', views.my_content),
    url('^my_content/page=(\d+)$', views.pagehelper),
    url('variables_demo/', views.variables_demo),
    url('list_demo/', views.list_demo),
    url('dict_demo/', views.dict_demo),
]

效果如下:

Django学习(三) 之  模板中标签的使用

知识点:

变量模板语法:

  • view:{"HTML变量名" : "views变量名"}
  • HTML:{{变量名}}

4、模板的一些特殊栗子

template_demo.html添加如下代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>TEMPLATE_DEMO</title>
</head>
<body>
 <p>variables_demo: {{ name|safe }}</p>
<!-- 过滤器部分例子-->
 <p>过滤器部分例子: {{ name|upper }}</p>
<!-- length例子-->
  <p>length例子: {{ name|length }}</p>
 <!-- 截断的字符串将以 ... 结尾。-->
 <p>截断的字符串将以 ... 结尾: {{ name|truncatechars:2}}</p>
 <p>list_demo: {{ list }}</p>
 <p>list_demo: {{ list|first|upper }}</p>
 <p>dict_demo: {{ dict }}</p>


</body>
</html>

mycontent/views.py中添加代码如下:

def variables_demo(request):
    name = '<script>alert("safe test!")</script>'
    return render(request, 'template_demo.html', {'name': name})

效果如下:

Django学习(三) 之  模板中标签的使用

Django学习(三) 之  模板中标签的使用

知识点:

{{ views_str|safe }}:将字符串标记为安全,不需要转义,要保证 views.py 传过来的数据绝对安全,才能用 safe

5、if/else、for标签、遍历字典的使用

if/else标签:

基本语法格式如下:

{% if condition %}
     ... display
{% endif %}
# 或者:

{% if condition1 %}
   ... display 1
{% elif condition2 %}
   ... display 2
{% else %}
   ... display 3
{% endif %}

根据条件判断是否输出。if/else 支持嵌套。

{% if %} 标签接受 and or或者 not 关键字来对多个变量做判断 ,或者对变量取反( not ),例如:

{% if athlete_list and coach_list %}
     athletes 和 coaches 变量都是可用的。
{% endif %}

for 标签使用
基本语法格式如下:

{% for athlete in athlete_list %}
    {{ athlete.name }}
{% endfor %}

示例:

<ul>
{% for athlete in athlete_list %}
    <li>{{ athlete.name }}</li>
{% endfor %}
</ul>

遍历字典的使用

{% for i,j in views_dict.items %}
{{ i }}---{{ j }}
{% endfor %}

效果如下:

image.png

6、注释标签

Django 注释使用 {# #}。

{# 这是一个注释 #}

写在最后

感觉有点像Java中的httljsp都有点像呢,马上熟悉感就来了,作为一个Java党,这突然而来的熟悉感,真的好亲戚,哈哈!文章来源地址https://www.toymoban.com/news/detail-750848.html

到了这里,关于Django学习(三) 之 模板中标签的使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ECSHOP模板系统控制标签使用介绍

    ECSHOP模板系统控制标签介绍说明,本文将为您介绍ecshop中基本的控制函数标签的使用参数和方法,其中包括if标签、foreach标签、for标签等,其实Smarty 中的 if 语句和 php 中的 if 语句一样灵活易用,并增加了几个特性以适宜模板引擎, if必须于/if 成对出现. 可以使用 else 和 els

    2023年04月16日
    浏览(38)
  • django中模板的使用

    在项目的同层级下 新建模板文件夹 index.html 方式一 方式二 data的数据会放到index,html 要想使用 需要{{key}}

    2024年02月11日
    浏览(34)
  • ECSHOP模板系统变量调节标签使用说明

    ECSHOP作为国内使用最多的网上商城系统,却没有一个很好的API手册,着实比较让我们费心,要想查找一个函数的功能,只能通过查看其程序的源代码才可以知道有什么功能,官方的手册也不全面,很多东西都没有编写完成,可能作者已经不想在维护这个程序了,ECSHOP的版本也

    2023年04月16日
    浏览(50)
  • 帝国CMS专题调用标签eshowzt不支持标签模板使用程序代码的解决方法

    本文讲述了帝国CMS专题调用标签eshowzt不支持标签模板使用程序代码的解决方法。涉及针对帝国CMS源码的修改。分享给大家供大家参考,具体如下: 一、问题: 在项目开发中需要在首页调用专题,且专题增加了“专题自定义字段”:副标题(ftitle),需要在栏目名调用出比较

    2023年04月20日
    浏览(48)
  • 【D02】Bootstrap免费精选模板推荐,附上Django中使用模板教程

    今天介绍一款制作精良、开源、免费的 Bootstrap 模板 —— Anchor UI KIT 该模板使用的是Bootstrap v4版本 本文将介绍如何在Django中导入该模板的静态资源包并使用 Anchor - a free Bootstrap UI Kit (bootcss.com) 进入文档Docs后,可以看到 文件结构 和 组件HTML代码 等等。 点击导航栏右侧 Downlo

    2023年04月13日
    浏览(33)
  • 深度学习中标量,向量,矩阵和张量

    1.标量(Scalar) 只有大小没有方向,可用实数表示的一个量 2.向量(Vector) 可以表示大小和方向的量 3.矩阵(Matrix) m行n列,矩阵中的元素可以是数字也可以是符号,在深度学习中一般是二维数组 4.张量(Tensor) 用来表示一些向量、标量和其他张量之间的线性关系的多线性函数,这些线

    2024年02月15日
    浏览(43)
  • 织梦dedecms模板中显示最近浏览文章列表的方法示例

    我们在制作织梦商城模板的时候经常会仿照shopex或者ecshop模式,在列表dede模板中添加最近浏览文章列表,这样可以提高客户的体验度,下面dedecms模板中心跟大家分享下实现方法: 1.后台出执行如下语句 2.新建php文件count_zj.php 存放到puls目录下内容如下 3.在文章模板处添加如下

    2024年02月02日
    浏览(48)
  • 从零开始的Django框架入门到实战教程(内含实战实例) - 01 创建项目与app、加入静态文件、模板语法介绍(学习笔记)

      Django是目前比较火爆的框架,之前有在知乎刷到,很多毕业生进入大厂实习后因为不会git和Django框架3天就被踢掉了,因为他们很难把自己的工作融入到整个组的工作中。因此,我尝试自学Django并整理出如下笔记。   在这部分,我将从Django的安装讲起,从创建项目到制

    2024年02月09日
    浏览(69)
  • OpenCv案例(十二):基于OpenCVSharp学习之模板匹配寻找距离中心位置最近的目标

    1:需求:在原图中,有多个特征点和模板图像一模一样,因此,寻找原图中中心位置最近的特征点位(模板匹配详解);原图如下所示: 模板图像:                                                                          2:现要求匹配找

    2024年01月24日
    浏览(55)
  • 银河麒麟、中标麒麟学习实操资料汇总(含V4、V7、V10)

    数据库和操作系统关系十分密切,因为数据库是运行于操作系统上的一个管理数据的应用。在数据库国产化替代的浪潮之下,一批批国产操作系统也崭露头角。墨天轮社区便选取了中国操作系统排行榜上排名靠前的 麒麟软件 ,依照各版本整理了相关的实操文档、文章,将学

    2024年02月04日
    浏览(78)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包