flask第十七篇——模板【1】
从这一节开始我们就正式进入flask一个重要的模块——模板了。
我们平时看的知乎平台就是Python开发的,可以看到他的很多页面布局都是一样的,比如你现在搜“如何自学Python”,去知乎看他的页面是这样的:
你该搜如何找工作,它的布局仍然是这样:
不用说,知乎的大神们不可能每个页面都做一个.html
的页面吧?!那样累死他们他们也做不过来啊,其实他们用的都是一个模板,也就是说他们只写了一个页面,然后所有的页面都复用这一个页面,那么这个一直可以复用的页面就叫做模板啦~~今天我们要讲的就是这个内容~
可能你眉头一皱——发现事情并不简单aaarticlea/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQImWNgYGBgAAAABQABh6FO1AAAAABJRU5ErkJggg==" alt="" data-src="https://res.wx.qq.com/mpres/htmledition/images/icon/common/emotion_panel/smiley/smiley_13.png" data-ratio="1" data-w="20" />——因为这里要用到HTML的知识了。是的,不过没关系,船长对html也是一窍不通,所以大家跟着我一起写就好了,船长现学现卖,你就不能现看现学吗?废话不多说,开始这一节的内容:
新建一个flask项目,叫templateDemo
,如何新建flask项目之前已经讲过了:
先看一个最基本的代码:
# coding: utf-8
from flask import Flask
app = Flask(__name__) # type: Flask
app.debug = True
@app.route('/')
def hello_world():
return '<h1>这是标题</h1>'
if __name__ == '__main__':
app.run()
执行代码,页面可以看到显示的内容已经是html的页面了:
但是一般来说我们页面内容会很多,我们不可能把HTML内容放在这里乱七八糟的,所以我们可以新建一个HTML文件来存放HTML代码,我们已经知道是模板文件,所以把新建的HTML文件新建在templates文件夹下:
如上图所示,我们新建了一个名为index
的HTML文件在templates文件夹下。
然后按照下图编辑这个HTML文件:
可以看到<h1>这是....</h1>
是在body
标签里面哦。而且h1
标签你写了前面后面是会自动补全的。
现在我们写好了一个简单的HTML文件,回到主代码:
要想调用写好的模板,你需要从flask导入render_template
库,代码如下
# coding: utf-8
from flask import Flask, render_template
app = Flask(__name__) # type: Flask
app.debug = True
@app.route('/')
def hello_world():
return render_template('index.html')
if __name__ == '__main__':
app.run()
保存一下文件Ctrl+s
,然后去浏览器刷新页面(因为我们开启了debug,所以不需要重新运行代码了):
我们看到title
标签就是上面浏览器标签显示的内容,而body
里面的h1
标签显示的字体辣么大~
现在大家就简单的体验了一下模板的作用~
过了十二点了,再讲点吧~
刚才我们把`index.html`文件新建在了`templates`文件夹下,可是有同学不想放在这个文件夹下,那该怎么办呢?我们看一下`Flask`的源码:
可以看到在初始化的时候它规定了模板的文件夹就是templates
,所以现在改一下模板路径就很简单了——初始化的时候多传一个template_folder
参数即可:
上面我们的templates
文件夹下面已经没有文件了,保存代码刷新页面以后可以看到对应的HTML文件的显示。但是如果你去掉app = Flask(__name__, template_folder='static')
的template_folder='static'
,页面就会报找不到模板错误:
如果有同学用Chrome浏览器,刷新的时候可能会提示翻译:
这个时候删掉标签里面的lang="en"
然后重新执行代码,或者你点击那个一律不翻译英语的按钮就可以了。
请关注公众号:自动化测试实战,关注文章最快更新动态
flask第十七篇——模板【1】的更多相关文章
- flask 第四篇 模板语言jinja2
是时候开始写个前端了,Flask中默认的模板语言是Jinja2 现在我们来一步一步的学习一下 Jinja2 捎带手把 render_template 中留下的疑问解决一下 首先我们要在后端定义几个字符 ...
- flask第二十三篇——模板【5】过滤器
请关注微信公众号:自动化测试实战 过滤器——format格式化 flaskDemo.py # coding: utf-8 from flask import Flask, render_templat ...
- flask第二十篇——模板【3】
请关注公众号:自动化测试实战 现在我们通过查询字符串的方式给render_template传参,我们就要用到flask库的flask.request.args.get()函数先获取参数,在index. ...
- flask第二十七篇——九九乘法表
请关注公众号:自动化测试实战 九九乘法表其实很容易: <table border="1"> <tbody> {% for x in range(1, 10) ...
- Flask最强攻略 - 跟DragonFire学Flask - 第四篇 Flask 中的模板语言 Jinja2 及 render_template 的深度用法
是时候开始写个前端了,Flask中默认的模板语言是Jinja2 现在我们来一步一步的学习一下 Jinja2 捎带手把 render_template 中留下的疑问解决一下 首先我们要在后端定义几个字符 ...
- Python之路【第十七篇】:Django【进阶篇 】
Python之路[第十七篇]:Django[进阶篇 ] Model 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计表结构和字段 使用 MySQLdb 来连接 ...
- Python之路【第十七篇】:Django之【进阶篇】
Python之路[第十七篇]:Django[进阶篇 ] Model 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计表结构和字段 使用 MySQLdb 来连接 ...
- Python之路【第十七篇】:Django【进阶篇】
Python之路[第十七篇]:Django[进阶篇 ] Model 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计表结构和字段 使用 MySQLdb 来连接 ...
- 解剖SQLSERVER 第十七篇 使用 OrcaMDF Corruptor 故意损坏数据库(译)
解剖SQLSERVER 第十七篇 使用 OrcaMDF Corruptor 故意损坏数据库(译) http://improve.dk/corrupting-databases-purpose-usin ...
随机推荐
- js的数组问题
目录: 1. 遇到的问题 2. 解决方案 3. 内部原理 4. 总结 1. 遇到的问题 前天在写js时,遇到了一个很奇怪的问题:我有两个数组变量a.b,在经过一些运算后,数组b中有一些值,然后我就把数 ...
- server2012/win8 卸载.net framework 4.5后 无法进入系统桌面故障解决
故障:服务器装的是windows2012 standard(2012版本从低到高依次为Foundation.Essentials.StandardDatacenter,以及它们的升级版R2),由于要安 ...
- KVM与XEN虚拟化环境究竟有何不同
虚拟化的概念在近些年收到了很大程度上的普及,求其原因很简单:虚拟化能够最大程度利用资源,为企业节约成本.目前市面较受欢迎的虚拟架构主要有KVM.XEN和VMware,其中,KVM和XEN都是免费开源的 ...
- CentOS开端口问题
关闭SELINUX ##查看SELINUX状态 /usr/sbin/sestatus -v getenforce #修改config配置文件,重启后即可 vi /etc/selinux/config ...
- hdu2121无定根的最小树形图
无定根的最小树形图,像网络流的超级源和超级汇一样加一个起点,用邻接表(n>1000) n<1000用邻接矩阵 #include<map> #include<set> ...
- UVA-11294 Wedding (2-SAT)
题目大意:一张长桌,n对夫妻,编号为0~n,这些人要坐在长桌两侧,每对夫妻不能坐在同一侧.其中,有2*m个人相互讨厌,编号为0的夫妻中的妻子不愿意让对面那一侧中有两个相互吵过架的人,找一种排座位方案. ...
- rabbitmq&&erlang 安装
# yum install epel-release CentOS and Red Hat Enterprise Linux 6.x wget https://dl.fedoraproject.org ...
- 【MySQL】日期与字符串间的相互转换
字符串转日期 下面将讲述如何在MySQL中把一个字符串转换成日期: 背景:rq字段信息为:20100901 无需转换的: SELECT * FROM tairlist_day WHERE rq> ...
- Ansible 小手册系列 十(包含和角色)
一.包含 (include) 使用include模块来包含foo文件 tasks: - include: foo.yml --- foo.yml - name: test foo command: e ...
- 019——VUE中v-for与computer结合功能实例讲解
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...