Django新手教程9,美化页面

做完前面的主页,你可能就会想啊,不需要有实体的index.html文件直接由讲解员口述,这方便是方便了,可是如果我们需要一个美丽的主页,比如要设计字体大小,颜色什么的,难道也要让讲解员描述的天花乱坠吗,这有些不切实际,所以,不需要实体的index.html并不算是django非常大的优点,django的讲解员也可以不说话,直接将游客指引到相应的html文件。
这时候,我们也要像传统的php开发模式一样,指定某个文件夹来存放这些html文件。我们之前说过,html文件就像一个个展柜,所以,我们就在myCloud文件夹下面新建一个叫templates的文件夹

我们在里面新建一个叫index.html的文件,输入如下的html代码

<!doctype html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  <title>Home Page</title>
</head>
<body>
  <p>Welcome</p>
</body>
</html>
image.png

你不懂也不要紧,反正这就是一个标准的html文件,相当于就是,我们就是按照展柜的规格,把展柜建起来了。
然后,我们命令我们的index_jiangjieyuan,别逼逼了,把游客指引到这个展柜就得了。在jiangjieyuan_mingdan.py文件中将index_jiangjieyuan函数修改一下

from django.shortcuts import render

# Create your views here.
from django.http import HttpResponse
def index_jiangjieyuan(request):
    return render(request,'index.html')
image.png

这样一来,你再运行服务器,显示的就是这个index.html。这就跟传统的开发模式差不多了。
django灵活的是可以在这个index.html随时插入讲解员的讲解,我们先按照django的规则,在 index.html里面放入讲解员插话的地方,比如说我们需要出入一句讲解语位于主页中welcome的下面,那么就在index.html中输入如下的html代码

<!doctype html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  <title>Home Page</title>
</head>
<body>
  <p>Welcome</p>
  <p>{{ jiangjieyu1 }}</p>
</body>
</html>
image.png

然后我们在讲解员函数中插入讲解员要讲的话。比如今天是几月几号。

from django.shortcuts import render

# Create your views here.
from django.http import HttpResponse
from datetime import date
def index_jiangjieyuan(request):
    today = str(date.today())
    word = "hello, today is " + today
    return render(request,'index.html',{'jiangjieyu1':word})
image.png
image.png

看到django模式的好玩之处了没有,你可以使用html文件然后再添加讲解员的讲解语,是不是很完美,传统的方式,弄好一个个展柜,直接引领你到那里得了,自个看去,django模式则是,不仅有展柜,而且我们还配有讲解员适当做一些讲解,当然,你的展馆没有展柜只有讲解员,吹得再怎么天花乱坠都是不行的,一定要两者结合,才能给游客带来完美的游览体验。
如果你不会做html也没有关系。你可以下载免费的html,人家已经帮你把html设计好,你只要把需要展现内容的地方挖掉换成你的内容,换成讲解语就可以了。还有就是,前段后端分的比较开,设计师只要考虑如何设计HTML就可以了,怎么往里面填数据,后面的数据结构则不需要考虑,比如我们这里,设计者只要考虑在网页的哪个角落放日期,日期的字体如何,颜色如何,至于我们使用什么函数获得今日的日期则无关紧要,甚至,设计者可以不懂python,只要在他觉得该放日期的地方放一个{{ date_jiangjieyu }}
然后后端的程序员记得把{ 'date_jiangjieyu': today }作为解说语返回就可以了。
这里不是html的教学环节所以不展开多说,我们这里只是用简单的html文件。
假如,我们的HTML模板使用了CSS外部文件(这是很有可能的)或者需要呈现某些图片,这时候传统的开发模式的把这些文件放到HTML模板旁边,然后根据路径就可以加载进去了。比如这样

image.png

django则稍有不同,它认为CSS文件和图片,视频这些应该和HTML模板区分开来,这些不是展柜,而是我们网页的静态文件,所以我们要把他们放到一个专门的地方来保管,这个地方就叫static,假如现在我们需要使用一个LOGO图片作为我们云盘的logo,那么我们需要在myCloud目录下新建一个static文件夹,然后把logo.png放进去,接着在index.html里面写如下的代码:

image.png

注:里面的那句'<img scr="static/logo.png" />' 作为HTML代码插入简书的时候,总是渲染失败变成别的东西,所以只贴图,大家谅解。

image.png

就可以看到云盘的logo了,注意这里用的是/static/logo.png好像只是填入相应的路径,实际上,你把logo.png放进templates或其他地方,然后使用该路径引用是不行的,所有的静态文件都必须设在static文件夹里面。

推荐阅读更多精彩内容