django生成静态页面,django实现文件下载

  django生成静态页面,django实现文件下载

  本文主要详细介绍Django静态文件和模板,使用数据库。本文中的示例代码非常详细,具有一定的参考价值。感兴趣的朋友可以参考一下。

  00-1010序言模板存储目录模板调用模板语法数据传输元素参考语句if语句静态文件存储目录文件调用摘要

  

目录

 

  我们已经配置了Django,今天我们将学习静态文件和模板的放置和使用。

  

前言

 

  在上一章中,我们的视图函数测试使用HttpResponse返回一个字符串。

  作为我们的第一个Django项目

  但仅有这些还不够。你说别人看你自己的网页,那里只会有几行文字,既不美观也没有意义。

  

模板

 

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

  

存放目录

 

  现在让我们在APP文件下创建一个模板目录。

  并在这个目录中创建一个名为demo的HTML文件。

  在一些输入之后,你可以在视图函数中调用这个模板。

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

  从django.shortcuts导入render,HttpResponse

  #在此创建您的观点。

  定义测试(请求):

  返回render(请求, demo.html )

  请求参数必须添加到注意:函数中,请求参数也需要添加到引用html模板时使用的呈现中。

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

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

  您可以看到类似于上面所示的操作结果。

  

模板调用

 

  Django不是一种标记语言,它可以处理数据。在网页渲染之前,会先执行Django语句,然后相应位置的Django语句会被可以呈现给用户的逻辑结果所替代。

  

模板语法

 

  在制作网页的时候,如果不能一下子知道元素的值,比如需要通过一个数据库来获取数据操作等等。那么我们就要在view函数中把需要的数据以字典的形式转移到HTML中。幸运的是,可以传递常见的数据类型。

  传递方法:变量以字典形式通过render函数传递,当在HTML中引用时,它由双花括号键名引用。

  现在就试试吧!

  在视图函数中写一些

  函数,然后传递过去

  

 s = "这是一个字符串"

 

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

  

<h3> {{ str }} {{dict}}</h3>

 

  最后点运行。

  

 

  

  

 

  

 

  

元素引用

 

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

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

  view.py

  

def test(request):

 

  demo.html

  

<body>

 

  结果

  

 

  

 

  

for语句

 

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

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

  先看字典

  

 d = {"今天": "天气", "真不错": "对吗?"}

 

  

<h1>快看调用成功了没有?</h1>

 

  

  

 

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

  还是那串代码

  

def test(request):

 

  只是改了HTML

  

<h1>快看调用成功了没有?</h1>{% for i in list1 %} <h4>{{list1}}</h4> <h4>{{i}}</h4> <!--不能这样输出值--> <h4>{{list1.i}} 前面好像没输出</h4>{% endfor %}

 

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

  

 

  

 

  

if语句

 

  Django同样支持条件语句。

  

<!--list = [1,2,3,4]-->

 

  

  

 

  

 

  

静态文件

 

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

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

  

存放目录

 

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

  

 

  

 

  

文件调用

 

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

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

  

 

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

  

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

 

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

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

  

 

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

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

  

{% load static %}

 

  声明导入静态文件

  

 

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

  

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

 

  点击运行

  

 

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

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

  

 

  

总结

 

  无论是 {{ 变量 }} 还是 {% 表达式 %} 都属于Django语法的一部分,在render函数内部会将HTML中的DJango语句处理完并替换成相应的字符串后再将标准的HTML格式内容发送给浏览器。

  本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注盛行IT软件开发工作室的更多内容!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: