从这一节开始我们就正式进入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】的更多相关文章

  1. flask 第四篇 模板语言jinja2

    是时候开始写个前端了,Flask中默认的模板语言是Jinja2 现在我们来一步一步的学习一下 Jinja2 捎带手把 render_template 中留下的疑问解决一下 首先我们要在后端定义几个字符 ...

  2. flask第二十三篇——模板【5】过滤器

    请关注微信公众号:自动化测试实战 过滤器——format格式化 flaskDemo.py # coding: utf-8 from flask import Flask, render_templat ...

  3. flask第二十篇——模板【3】

    请关注公众号:自动化测试实战 现在我们通过查询字符串的方式给render_template传参,我们就要用到flask库的flask.request.args.get()函数先获取参数,在index. ...

  4. flask第二十七篇——九九乘法表

    请关注公众号:自动化测试实战 九九乘法表其实很容易: <table border="1"> <tbody> {% for x in range(1, 10) ...

  5. Flask最强攻略 - 跟DragonFire学Flask - 第四篇 Flask 中的模板语言 Jinja2 及 render_template 的深度用法

    是时候开始写个前端了,Flask中默认的模板语言是Jinja2 现在我们来一步一步的学习一下 Jinja2 捎带手把 render_template 中留下的疑问解决一下 首先我们要在后端定义几个字符 ...

  6. Python之路【第十七篇】:Django【进阶篇 】

    Python之路[第十七篇]:Django[进阶篇 ]   Model 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计表结构和字段 使用 MySQLdb 来连接 ...

  7. Python之路【第十七篇】:Django之【进阶篇】

    Python之路[第十七篇]:Django[进阶篇 ]   Model 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计表结构和字段 使用 MySQLdb 来连接 ...

  8. Python之路【第十七篇】:Django【进阶篇】

    Python之路[第十七篇]:Django[进阶篇 ]   Model 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计表结构和字段 使用 MySQLdb 来连接 ...

  9. 解剖SQLSERVER 第十七篇 使用 OrcaMDF Corruptor 故意损坏数据库(译)

    解剖SQLSERVER 第十七篇 使用 OrcaMDF Corruptor 故意损坏数据库(译) http://improve.dk/corrupting-databases-purpose-usin ...

随机推荐

  1. 学习webpack3.x过程中遇到的问题:webpack-dev-server

    这篇博客主要记录的是本人在学习webpack3.x的过程中遇到的问题(虽然这几天4.0刚出来,但是我还是先学一下3.x吧) 1.配置文件可以用webpack启服务和热更新,步骤如下: ① 先下载:we ...

  2. jQuery实际案例④——360导航图片效果

    如图:①首先使用弹性盒子布局display:flex; flex-wrap:wrap; ②鼠标移上去出现“百度一下,你就知道了”,这句话之前带上各个网站的logo:③logo使用的是sprite,需要 ...

  3. JS实现的base64加密、md5加密及sha1加密详解

    1.base64加密 在页面中引入base64.js文件,调用方法为: <!DOCTYPE HTML> <html> <head> <meta charset ...

  4. 深入了解JavaScript中的Symbol的使用方法

    这篇文章主要介绍了深入了解JavaScript中的Symbol的使用方法,本文针对ES6版本的JS进行讲解,需要的朋友可以参考下 Symbol 是什么? Symbols 不是图标,也不是指在代码中可以 ...

  5. 十四 web爬虫讲解2—Scrapy框架爬虫—豆瓣登录与利用打码接口实现自动识别验证码

    打码接口文件 # -*- coding: cp936 -*- import sys import os from ctypes import * # 下载接口放目录 http://www.yundam ...

  6. linux-Centos7安装nginx

    首先配置linux环境,我这里是刚刚装好linux,所以一次性安装了一系列我需要到的环境: yum install pcre pcre-devel zlib zlib-devel openssl op ...

  7. el-table实现表格的编辑、删除、以及新增行的方法

    直接上代码: html部分: <el-form :model="inServForm" ref="inServForm" label-width=&quo ...

  8. linux oracle11g 数据 导入到10g数据库

    说明: 原用户名和密码:test/test  目标用户名和密码:test01/test 11G 服务器: 1.创建dmp文件存储目录 # mkdir -p /tmp/backup # sqlplus ...

  9. SpringBoot全家桶

    前言 Spring简化了Java的开发,而SpringBoot简化了Spring.本文用SpringBoot采用分层的结构整合了filter,aspect,mybaits,logback,redis, ...

  10. CF Round #456 (Div. 2)

    这时我第一次打CF 然后一看t1 哇好水 然后秒A了 看B 哇好像也很水 然后A了 看了C 不会... 然后去看D 似乎概率 然后推了一下,退出来了 然后看E 不会... 接着问了半个小时怎么hack ...