文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Django模板引擎有几种

2023-06-02 07:00

关注

这篇文章将为大家详细讲解有关Django模板引擎有几种,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

在Django框架中,可以使用两种模板引擎,一种是默认的Django模板引擎,还有一种是Jinja2模板引擎

1.模版引擎的作用和优点

模版引擎作用是将View视图中需要在前端HTML页面中展示的数据,通过模板引擎的语法规则,展示出来;

模版引擎优点是将业务逻辑的Python代码和页面设计的HTML代码分离,使代码更干净整洁更容易维护,使Python程序员和HTML/CSS程序员分开协作,提高生产的效率,且将HTML代码分离出来,还能使其能够复用;

2.HTML模板存放的位置

HTML模板存放的位置有两个,一个是存放在settings文件中指定的DIRS的目录列表中,还有一个是直接在对应的APP包下,创建templates目录,将HTML放置于此即可,不同APP对其他APP目录下的templates目录都是可见的;

3.模板引擎的配置

先在项目的settings.py文件中找到TEMPLATES变量,然后加入

TEMPLATES = [    {        # 选择模板引擎,默认是Django的模板引擎        'BACKEND': 'django.template.backends.django.DjangoTemplates',        #或者是jinja2模版  'BACKEND': 'django.template.backends.jinja2.Jinja2'        # 指定HTML模板存放的目录,如果HTML模板较多,可以设置多个模板路径        'DIRS': [os.path.join(BASE_DIR, 'templates')],        # APP_DIRS的值判断是否支持将template目录放置在APP中,Django默认支持值为True        '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',            ],        },    },]

4.Django模板引擎的模板语法

变量(VARIABLE):

{{ VARIABLE }}   # 用于引入后台传入的变量{{ VARIABLE.name }}{{ VARIABLE.age }}

标签(TAG):

{% TAG %}   # 用于循环1: 正序 for 循环{% for item in items %}    <p>{{ forloop.counter }}</p>    <p>{{ item.name }}</p>    <p>{{ item.desc }}</p>{% endfor %}2: 倒叙 for 循环{% for item in items reversed %}    <p>{{ forloop.counter }}</p>       # 记录循环到第几次,计数从1开始    <p>{{ item.name }}</p>    <p>{{ item.desc }}</p>{% endfor %}3: 变量字典{% for k,v in dictionary.items %}    <p>{{ k }},{{ v}}</p>{% endfor %}

5.Django模板的继承的作用

在Django开发过程中,页面中的重复部分,可以通过Django的模板继承来完成,这样使得页面开发和管理更简单;

在HTML页面中使用到的关键字:

{% extends 这里填写被继承的HTML页面 %}{% block 这里填写继承的block %}  {% endblock %}{% include 这里填写需要引入的HTML子页面 %}

6.如何实现继承模板

我们知道了模板可以用继承的方式来实现复用,那接下来我们一起来操作一下:

第一步:可以在项目的templates中先编写好一个html页面,作为网站的基础页面被其他页面继承,我的HTML页面为base.html,然后在其中编辑HTML代码,注意要修改的部分写在{% block %} {% endblock %}的中间;

<body>    <div class="header">        今天是星期几呀    </div>    <!-- 内容变化部分 -->    {% block content %}    <div class="content">        <p>今天是星期一</p>    </div>    {% endblock %}    <div class="footer">        好的,谢谢    </div></body>

第二步:在你想要的app的templates目录下创建一个html页面,继承之前的基础页面,我还是使用的courses app,创建一个python.html文件,这些名字都可以自己命名的,不过要注意路径之类的;

{% extends 'base.html' %}{% block content %}     <div class="content">        <p>今天是星期{{ week_id }}</p>    </div>{% endblock %}

第三步:在根路由urls.py中,添加访问路径的路由文件,一定要分清项目的了路由和app的路由哟

url(r'^courses/', include(('courses.urls', 'courses'), namespace='courses')),

第四步:在app的路由文件urls.py中添加要访问的html路径;

urlpatterns = [    url(r'python/(?P<week_id>\d+)$', python, name='python')]

第五步:在app下的views.py中创建一个python函数;

from django.shortcuts import renderdef python(request, week_id):    return render(request, 'python.html', {'week_id': week_id})

然后我们就可以运行项目,运行项目依旧是打断点,然后调试,我们看看结果是否是我们预期的结果呢,比如我的访问路径是

http://127.0.0.1:8000/courses/python/1

python后面接数字,不然会报错,因为我们在第四步中添加路由访问的html路径的时候正则表达式验证必须是数组,这个可以大家自己修改的,可以按照自己的想法来做练习哟;

关于“Django模板引擎有几种”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯