返回顶部
首页 > 资讯 > 精选 >Django中静态文件与模板的示例分析
  • 195
分享到

Django中静态文件与模板的示例分析

2023-06-29 04:06:05 195人浏览 泡泡鱼
摘要

这篇文章主要介绍了Django中静态文件与模板的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。模板之前我们的视图函数test使用了HttpResponse返回一个字符

这篇文章主要介绍了Django中静态文件与模板的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

模板

之前我们的视图函数test使用了HttpResponse返回一个字符串

Django中静态文件与模板的示例分析

作为我们第一个DjanGo程序

Django中静态文件与模板的示例分析

但只有这些是远远不够的,你说要是别人看自己的网页就几行文字在那里,既不美观也无意义。

存放目录

我们平时看到的网页都是通过html向我们呈现的内容的,Django也一样。一个完整系统必须有着大量网页用于实现不同的功能,而那些HTML文件也有一个专门存放的目录叫templates模板。这个目录一般在APP目录下创建,每个APP均可创建一个templates用来存放HTML文件。当我们调用HTML文件的时候,系统就会根据APP的注册顺序在每个APP下的templates找所需要的HTML文件。

模板调用

那么现在我们在APP文件下创建一个templates目录。

Django中静态文件与模板的示例分析

Django中静态文件与模板的示例分析

并在该目录下创建一个名为demo的HTML文件

Django中静态文件与模板的示例分析

 输入些内容后就在能在视图函数调用这个模板了。

进入view.py文件定义一个函数以调用demo.html模板。

from django.shortcuts import render, HttpResponse  # Create your views here. def test(request):    return render(request, "demo.html")

注意:函数一定要加上 request参数,在引用html模板时使用的render同样需要加上request参数。

接下来在url.py文件中,确定好关系就OK了。(网页路径以hd/为例)

Django中静态文件与模板的示例分析

点击运行后,输入网址http://127.0.0.1:8000/hd/进入。

Django中静态文件与模板的示例分析

就能看到跟上图类似的运行结果了。

模板语法

Django不是标记语言,它能进行数据处理。渲染网页前会先执行Django语句,然后将得出的符合逻辑的能够呈现给用户看的结果替换掉对应位置的Django语句。

数据传递

在制作网页时,如果我们不能一下子知道元素的值,比如需要通过数据库才能获取数据操作等,那么我们就要在视图函数中将需要的数据以字典的形式进行传递给HTML。值得高兴的是,常用的数据类型都能传递。

传递方法:将变量以字典形式通过render函数进行传递,在HTML引用时,通过双花括号+键名引用。

现在试试吧!  

在视图函数编写些函数,然后传递过去

    s = "这是一个字符串"    d = {"这是一个": "字典"}     return render(request, "demo.html", {"str": s, "dict": d})

 之后在对应的HTML页面引用它

<h4> {{ str }} {{dict}}</h4>

 最后点运行。

Django中静态文件与模板的示例分析

Django中静态文件与模板的示例分析

元素引用

Django同样支持引用字典,列表,元组等数据类型里面的值,不一样的是Django用.取代了[]。

比如想引用字典里面的值需要通过 {{字典名.键名}} 来引用值(注意,键名无需使用引号。),如果想引用列表则 {{列表名.索引值}} 亦或者 多维列表 {{列表名.索引1.索引2...}} 来引用

view.py

def test(request):    d = {"这是一个": "字典"}    l1 = [1, 2, 3]    l2 = [[1, 2], [3, 4]]    return render(request, "demo.html",                  {"list1": l1, "dict": d, "list2": l2}                  )

demo.html

<body><h2>快看调用成功了没有?</h2><h4> {{list1.0}}</h4><h4> {{list2.0.1}}</h4><!--注意键名无需带引号--><h4> {{dict.这是一个}}</h4></body>

 结果 

Django中静态文件与模板的示例分析

 for语句

Django也支持循环语句,但在使用完循环后需要加结束语句。这些命令都在 {% 命令 %}尖括号百分号之间。{与%之间没有空格

循环使用字典时, 如果你想获取键(keys),值(values),键值对(items)后面都不需要添加括号。

先看字典

    d = {"今天": "天气", "真不错": "对吗?"}    l1 = [1, 2, 3]    return render(request, "demo.html",                  {"list1": l1, "dict": d}                  )
<h2>快看调用成功了没有?</h2><!--无需带括号-->{% for k, v in dict.items %}    <h5>{{k}} -- {{v}}</h5>{% endfor %}

Django中静态文件与模板的示例分析

 再看看列表,Django不支持range,所以只能迭代列表。

还是那串代码

def test(request):    d = {"今天": "天气", "真不错": "对吗?"}    l1 = [1, 2, 3, 4]    return render(request, "demo.html",                  {"list1": l1, "dict": d}                  )

 只是改了HTML

&lt;h2&gt;快看调用成功了没有?&lt;/h2&gt;{% for i in list1 %}    &lt;h5&gt;{{list1}}&lt;/h5&gt;    &lt;h5&gt;{{i}}&lt;/h5&gt;    &lt;!--不能这样输出值--&gt;    &lt;h5&gt;{{list1.i}} 前面好像没输出&lt;/h5&gt;{% endfor %}

循环最后要使用endfor结束。另外,似乎不能通过列表值来访问列表元素,导致{{list1.i}}没有值 

Django中静态文件与模板的示例分析

 if语句

Django同样支持条件语句。

<!--list = [1,2,3,4]--><!--list.1 = 2-->{% if list.1 == 0 %}    <h2>11111111111111111</h2>{% elif list.1 == 1 %}    <h2>2222222222222222222</h2>{% else %}    <h2>333333333333333333333</h2>{% endif %}

Django中静态文件与模板的示例分析

静态文件

为了能够呈现更精美的内容亦或者提高代码编写效率,我们往往会使用到一些静态文件。

开发过程中一般将图片,插件CSSjs等当做静态文件处理。

存放目录

静态文件那么重要当然有他们各自的归宿,它们都存放在static目录下。同样的static目录也在APP下面创建,每个APP都可以有一个专门存放静态文件的目录static。我们最好也能在static下对不同类型的文件进行分类存放。如,图片存放在img文件夹中,插件存放在plugins文件夹中,css文件存放在css文件夹,js存放在js文件夹。

Django中静态文件与模板的示例分析

文件调用

我以一张图片为例,讲解一下是如何调用它的。

我们先将图片放入static的img文件夹内,

Django中静态文件与模板的示例分析

在demo.html模板中的body使用img元素即可调用图片。一般的调用是这样的

<img src="/static/img/1.jpg" alt="没图片的话点运行重启项目试试">

如果没有显示图片的话重新运行一下应该就能加载了。

但是在Django中有专门调用静态文件的语法,我们也建议使用Django专门调用静态文件的方法。进入设置,滑到底部有这一个变量

Django中静态文件与模板的示例分析

这里就记录了我们静态文件的存放位置。使用Django语法,如果静态文件改名了,或者移到其他位置,直接在这里修改一下就好了,就不用在html引用静态文件的时候逐个逐个修改路径了。

现在就来看一下它的使用方法。在html顶部输入

{% load static %}

声明导入静态文件

Django中静态文件与模板的示例分析

 不知道为什么我第二行会有红线,可能PyCharm不知道这是一个Django语句,不管它,接着输入img图片的导入路径

<img src="{% static 'img/1.jpg'%}" alt="没图片的话点运行重启项目试试">

 点击运行

Django中静态文件与模板的示例分析

进入网址http://127.0.0.1:8000/hd/ 即可完成图片调用

css,js等文件导入的方法都是一样的,只要我们知道了Django导入静态文件的语法,渲染精致的html页面就不成问题啦!现在快去试试

感谢你能够认真阅读完这篇文章,希望小编分享的“Django中静态文件与模板的示例分析”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网精选频道,更多相关知识等着你来学习!

--结束END--

本文标题: Django中静态文件与模板的示例分析

本文链接: https://lsjlt.com/news/322656.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Django中静态文件与模板的示例分析
    这篇文章主要介绍了Django中静态文件与模板的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。模板之前我们的视图函数test使用了HttpResponse返回一个字符...
    99+
    2023-06-29
  • Django学习之静态文件与模板详解
    目录前言模板存放目录模板调用模板语法数据传递元素引用 for语句 if语句静态文件存放目录文件调用总结前言 我们已经配置完Django,今天就来学学静态文件与模板...
    99+
    2024-04-02
  • Python中Django模板系统的示例分析
    这篇文章主要为大家展示了“Python中Django模板系统的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Python中Django模板系统的示例分析”这篇文章吧。设置模板路径在dja...
    99+
    2023-06-25
  • Hive中静态分区与动态分区的示例分析
    这篇文章给大家分享的是有关Hive中静态分区与动态分区的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。  分区是hive存放数据的一种方式。将列值作为目录来存放数据,就是一个分区。这样查询时使用分区列进行...
    99+
    2023-06-02
  • 分离django中的媒体文件,静态文件
    前言 文章会在github中持续更新 作者: knthony github 联系我 django项目中,占很大体积的是静态文件,媒体文件还有html代码,那我们该如何把它们分离出来以方便我们和服务器去管理和使用它们。 static...
    99+
    2023-01-31
    静态 媒体文件 文件
  • Flask中提供静态文件的实例分析
    Flask中提供静态文件的实例分析,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1、可以使用send_from_directory从目录发送文件,这在某些情况下...
    99+
    2023-06-22
  • vue中静态路由的示例分析
    这篇文章将为大家详细讲解有关vue中静态路由的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。前言vue的单页面应用是基于路由和组件的,路由用于设定访问路径,并将路...
    99+
    2024-04-02
  • Django模板过滤器和继承示例分析
    本篇内容主要讲解“Django模板过滤器和继承示例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Django模板过滤器和继承示例分析”吧!模板过滤器定义:在变量输出时对变量的值进行处理作用:...
    99+
    2023-06-25
  • vue-cli中webpack模板项目配置文件的示例分析
    这篇文章主要为大家展示了“vue-cli中webpack模板项目配置文件的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“vue-cli中webpack模...
    99+
    2024-04-02
  • java模板模式的示例分析
    这篇文章主要介绍java模板模式的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Java设计模式-模板模式什么是模板模式?模板模式,顾名思义,就是通过模板拓印的方式。定义模板,就是定义框架、结构、原型。定义一...
    99+
    2023-06-20
  • Django中模块语言的示例分析
    这篇文章给大家分享的是有关Django中模块语言的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1、变量DTL用{{变量名}}格式表示变量。变量名由字母、数字、下划线组成,但不能以下划线开头。Django...
    99+
    2023-06-25
  • python中不同模板的示例分析
    这篇文章将为大家详细讲解有关python中不同模板的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。python的数据类型有哪些python的数据类型:1. 数字类型,包括int(整型)、long(...
    99+
    2023-06-14
  • PHP中模板方法模式的示例分析
    小编给大家分享一下PHP中模板方法模式的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!模板方法模式,也是我们经常会在不经意间有会用到的模式之一。这个模式是...
    99+
    2023-06-20
  • Linux动态库和静态库的示例分析
    今天就跟大家聊聊有关Linux动态库和静态库的示例分析,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。函数库分为静态库和动态库两种。创建Linux静态库和Linux动态库和使用它们在这...
    99+
    2023-06-16
  • ES6中模板字符串的示例分析
    这篇文章主要为大家展示了“ES6中模板字符串的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“ES6中模板字符串的示例分析”这篇文章吧。模板字符串(tem...
    99+
    2024-04-02
  • springboot中Thymeleaf模板引擎的示例分析
    这篇文章给大家分享的是有关springboot中Thymeleaf模板引擎的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。模板引擎springboot我们目前是以jar包的形式打包,实际上我们之前是打成w...
    99+
    2023-06-29
  • django之MVT模式的示例分析
    这篇文章主要介绍了django之MVT模式的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。本文教程操作环境:windows7系统、django2.1,DELL G3电...
    99+
    2023-06-14
  • Java中动态代理和静态代理的示例分析
    这篇文章主要介绍了Java中动态代理和静态代理的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。0、代理模式为什么要学习代理模式?这是SpringAOP的底层【Spri...
    99+
    2023-06-29
  • ASP动态include文件的示例分析
    这篇文章主要介绍ASP动态include文件的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! 经常有这样的要求,根据不同的需求要求include不同的文件如各个人的不同设置,所以要求能动态inclu...
    99+
    2023-06-14
  • C++模板重载的示例分析
    本篇文章为大家展示了C++模板重载的示例分析,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1.重载模板函数模板可以使得同一个函数对不同类型使用,非常地方便。但有的时候类型不同,只是通过模板是没办法解...
    99+
    2023-06-22
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作