什么是宏?

宏类似python中的函数,可以传参数进去,但不能有返回值!在实际开发项目中,可以将一些复用代码抽取出来放到宏中,然后把不固定的值作为变量!

宏的使用!

在讲宏使用之前,我们先网上找一张表单注册的图片,图片如下:

然后我们通过模板渲染的方式来实现这个表单!

新建一个test.py文件,代码如下(相信很多朋友都记得滚瓜烂熟了!):

from flask import Flask,render_templateapp = Flask(__name__)@app.route("/")
def index():return render_template("test.html")if __name__ == "__main__":app.run(debug=True)

再在templates文件下新建一个test.html文件,代码如下:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>用户注册</title>
</head>
<body><form action="#" method="post"><table><tr><td>用户名</td><td><input type="text" name="name" value=""></td></tr><tr><td>密码</td><td><input type="password" name="password1" value=""></td></tr><tr><td>确认密码</td><td><input type="password" name="password2" value=""></td></tr><tr><td>E-Mail:</td><td><input type="text" name="email" value=""></td></tr><tr><td>手机号码</td><td><input type="text" name="m-phone" value=""></td></tr><tr><td>固定电话</td><td><input type="text" name="tel" value=""></td></tr><tr><td>家庭住址</td><td><input type="text" name="address" value=""></td></tr><tr><td><input type="submit" name="name" value="注册"></td><td><input type="submit" name="name" value="登录"></td></tr></table></form>
</body>
</html>

运行test.py文件,结果如下:

相信对很多朋友来说,实现这个表单并不是什么难事!

上述代码虽然实现了表单注册这个界面!但是代码太复杂了,每次都得去input一下,太麻烦了!!是吧??

下面我们就用宏来实现这个效果!

首先,我们分析test.html文件表单的共性,是不是都有一个input标签啊!是不是??

OK,下面我们就把这段代码抽取出来放到宏中,代码如下:

{#{% macro %}{% endmarco %}定义宏的标准语法,起始跟结束标签 #}
{#macro后面的input为宏的名字,括号中的值为宏的参数,例如:type="text"表示默认文本类型为text #}
{% macro input(name,type="text",value="") %}
{#将input宏后面的name,type,value参数作为变量传入name,type,value值中 #}<input name="{{ name }}" type="{{ type }}" value="{{ value }}">
{% endmacro %}

宏定义好了,我们在test.html文件中把之前写的form表单代码删除掉。再输入下方代码:

<form action="#"><table><tr><td>姓名:</td><td>{{ input("username") }}</td></tr><tr><td>密码:</td><td>{{ input("password1",type="password") }}</td></tr><tr><td>确认密码:</td><td>{{ input("password2",type="password") }}</td></tr><tr><td>E-Mail:</td><td>{{ input("email") }}</td></tr><tr><td>手机号码:</td><td>{{ input("phone") }}</td></tr><tr><td>固定电话:</td><td>{{ input("tel") }}</td></tr><tr><td>地址:</td><td>{{ input("address") }}</td></tr><tr><td>{{ input("zuce",type="submit",value="注册") }}</td><td>{{ input("denglu",type="submit",value="登录") }}</td></tr></table></form>

代码是不是比之前简洁多了,看着也舒服。

说了那么多,还不知道运行结果咋样,我们运行试试!结果如下:

在实际开发项目中,宏用的地方还是挺多的,希望朋友们能够学会它,只有学会它,我们在开发项目中才能得心应手!

python 宏使用详解相关推荐

  1. python六大数据类型详解

    python 六大数据类型详解 文章目录 python 六大数据类型详解 数据类型简介 Number(数值) String(字符串) Python字符串的45个方法详解 一.大小写转换 01.capi ...

  2. Python开发技术详解

    Python开发技术详解 下载地址 https://pan.baidu.com/s/1KTrk3B1sajMiPIoo3-Rhuw 扫码下面二维码关注公众号回复 100089获取分享码 本书目录结构如 ...

  3. python20191031_20191031:Python取反运算详解

    20191031:Python取反运算详解 取反运算:~3 == 4 1.对于数字 3 =======>转换为二进制表示为011 2.对011取反为100 3.为什么表示-4 a.计算机用补码表 ...

  4. Python字符编码详解

    Python字符编码详解 转自http://www.cnblogs.com/huxi/archive/2010/12/05/1897271.html Python字符编码详解 本文简单介绍了各种常用的 ...

  5. python的执行过程_在交互式环境中执行Python程序过程详解

    前言 相信接触过Python的伙伴们都知道运行Python脚本程序的方式有多种,目前主要的方式有:交互式环境运行.命令行窗口运行.开发工具上运行等,其中在不同的操作平台上还互不相同.今天,小编讲些Py ...

  6. windows上安装Anaconda和python的教程详解

    一提到数字图像处理编程,可能大多数人就会想到matlab,但matlab也有自身的缺点: 1.不开源,价格贵 2.软件容量大.一般3G以上,高版本甚至达5G以上. 3.只能做研究,不易转化成软件. 因 ...

  7. python变量类型-Python 变量类型详解

    变量存储在内存中的值.这就意味着在创建变量时会在内存中开辟一个空间. 基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中. 因此,变量可以指定不同的数据类型,这些变量可以存储整 ...

  8. python安装教程windows-windows上安装Anaconda和python的教程详解

    一提到数字图像处理编程,可能大多数人就会想到matlab,但matlab也有自身的缺点: 1.不开源,价格贵 2.软件容量大.一般3G以上,高版本甚至达5G以上. 3.只能做研究,不易转化成软件. 因 ...

  9. python语言编程基础-Python语言入门详解!快速学成Python!

    原标题:Python语言入门详解!快速学成Python! 很多技能是被职场所需要的,但很可惜... 这些技能在大学中并学习不到. 大学和职场现实存在的横沟对大部分同学来说难以跨越或碰得头破血流... ...

最新文章

  1. 8种Nosql数据库系统对比
  2. 以local模式使用Xshell+Xmanager远程监控jvisualvm
  3. MySQL备份工具收集
  4. (十五)java B2B2C 多级Springboot多租户电子商城系统 Springboot整合RabbitMQ
  5. 我以前用过的一个洗牌算法
  6. intellij idea 显示打开文件路径按钮
  7. 违反GPL协议,法院判罚了!国内首例
  8. 【Python 19】BMR计算器3.0(字符串分割与格式化输出)
  9. jQuery上传插件-uploadify3.1使用说明
  10. 云小课|MRS基础原理之ClickHouse组件介绍
  11. java设计模式 建造模式_理解java设计模式之建造者模式
  12. 【codevs1039】01年noip TG--数的划分满分dp+愚蠢深搜+pas的奇怪做法
  13. C++教程:C++开发的四重境界是什么?
  14. matlab色差,计算CMC色差公式的matlab程序
  15. WPF实例系列一:登录、注册界面设计
  16. python 驱动工控机板卡,研华工控机主板驱动下载
  17. Ubuntu 16 NFS的安装与使用
  18. 全栈式深度学习(概括实讲解)
  19. Android软件测试外文文献,软件测试中英文对照外文翻译文献
  20. Python利用PIL将png图像转jpg图像

热门文章

  1. 阿里云弹性公网EIP收费价格表
  2. php查询最新信息,查询发票信息示例代码
  3. MDK5(keil5)源文件列表中黄色的钥匙标识
  4. 针对华为这件事,我思考了四点
  5. 【干货】统计学 × 数据分析 · 上
  6. 哪些ipad的APP可以很好的阅读英文文献?
  7. 淘宝网商品SKU系统设计经验分享
  8. 安装WIN10+Ubuntu
  9. CF631C 单调栈
  10. 计算机无法安装windows系统还原,windows一键还原,详细教您电脑怎么一键还原