博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
3.1 为什么要使用和如何使用模板
阅读量:4095 次
发布时间:2019-05-25

本文共 1094 字,大约阅读时间需要 3 分钟。

一. 为什么要使用模板

   
视图函数有两个作用, 一个是业务逻辑一个是表现逻辑, 举例说明:
        用户在网站注册了一个新账号, 用户在表单中输入电子邮件地址和密码, 点击提交按钮, 服务器接收到包含用户输入的请求, 然后Flask把请求分发到处理注册请求的视图函数。 这个视图函数需要访问数据库, 添加新用户(业务逻辑), 然后生成相应回送浏览器(表现逻辑)。
   
两个完全独立的作用被混淆到一起会使代码难以理解和维护, 所以我们选择吧表现逻辑(响应)迁移到模板当中去。

二. 如何使用模板

1.先来介绍什么是模板, 模板就是一个后缀为.html的文件, 文件内容就是视图函数的返回值
    例1: templates/index.html
                <h1>Hello World!</h1>
             
默认情况下, Flask在程序文件夹里的templates文件夹里寻找模板, 在下个版本的hello.py里, 要把模板保存到templates文件夹中。
    例2:templates/user.html
                <h1>Hello, {
{name}}!</h1>
             
例2的文件内容包含一个使用变量表示的动态部分, 后面我们来解释它的用法
2.渲染模板
    使用真实值替换变量, 再返回最终得到的响应字符串, 这一过程称为渲染:
from flask import Flask, render_template#...@app.route('/')def index():    return render_template('index.html')@app.route('/user/
')def user(name): return render_template('user.html', name=name)
    render_template函数的第一个参数是模板文件名,
第二个参数是键值对, 等号左边是模板文件中的变量名, 右边是视图函数的参数也就是值。 我的理解就是render_template函数先用参数值替换掉模板文件中的变量, 然后把模板文件中的内容读出来作为响应返回。
3. 第2点讲的是原理,实际操作我们只需要把3a版本从版本库迁到工作区即可:
        &git checkout 3a      执行后工作区的变化如下:
            
           
可以看到工作区多了一个templates文件夹, 文件夹里有两个模板文件。
之后把hello.py检查修改一下(迁出的部分代码可能省略了要检查修改一下)然后运行:
    
可以看到运行效果和之前一模一样, 但是我们的确使代码避免了混淆和难以维护, 这在复杂的视图函数中效果较明显。
            
    
你可能感兴趣的文章
CSS display:inline和float:left两者的区别
查看>>
一、静态网页的实现 1.运用CSS,让导航菜单在右侧绝对定位显示。 2.运用锚点,实现导航定位。
查看>>
SEO-搜索引擎优化
查看>>
又有几天没有写博客了,最近把以前学的也整理下,发到博客中
查看>>
多项选择-全选和全不选hobby[i].checked = true;wb.charAt(n)<1 || wb.charAt(n) > 6
查看>>
如图样式,鼠标经过或者点击显示以下样式
查看>>
用div+css做下拉菜单,当鼠标移向2级菜单时,为什么1级菜单的a:hover背景色就不管用了?
查看>>
IE浏览器对getElementByClassName()方法支持较差,解决方法(粗略):
查看>>
跳出循环
查看>>
瀑布流----未含加载功能
查看>>
for(var i in hArr)与for(var i=0;i<hArr.length;i++)的区别
查看>>
自己写的--瀑布流
查看>>
Web调试工具-Firebug
查看>>
Servlet——(一)Servlet概述——Servlet的路径跳转
查看>>
从今天开始,决定又开始学习后台
查看>>
SEO--搜索引擎优化
查看>>
2016年10月1日--国庆日晚上
查看>>
js继承的实现;
查看>>
js获取每一天24点的时间
查看>>
JAVA--定义一个包含整型数组参数的方法,用来接收成绩数组,进行成绩排序并输出前三名
查看>>