宏 和 import 语句

Flask 学习笔记

一、宏


        模板中的宏跟 python 中的函数类似,可以传递参数,但是不能有返回值,可以将一些经常用到的代码片段放到宏中,然后把一些不固定的值抽取出来当成一个变量。怎么用呢?可以通过传参的方式定义 html 标签中的属性。

    <!--  先用 宏 定义input的结构  -->
    {% macro input2(names, values='', types='text') %}
        <input name="{{names}}", value="{{values}}", type="{{types}}">
    {% endmacro %}

    <!--  使用  -->
    <table>
        <tr>
            <td>用户名:</td>
            <td>{{ input2('nameuser') }}</td>
        </tr>
        <tr>
            <td>密码:</td>
            <td>{{ input2('password', types='password') }}</td>
        </tr>
        <tr>
            <td>提交:</td>
            <td>{{ input2(values='提交', types='submit') }}</td>
        </tr>
    </table>



二、import 语句


        在真实的开发中,会将一些常用的宏单独放在一个文件中,在需要使用的时候,再从这个文件中进行导入。import 语句的用法跟 python 中的 import 类似。


2.1、导入

  • 注意 import 语句的位置(用于显示的 index.html 文件)
	{% import "macro.html" as ma %}
	{% from "macro.html" import input2 %}
	<!DOCTYPE html>
	<html lang="en">
	<head>
	    <meta charset="UTF-8">
	    <title>Title</title>
	</head>
	<body>
	    {{ ma.input2("username", values="import 导入") }}
	    {{ input2("username2", values="from 导入") }}
	</body>
	</html>
  • macro.html 文件
    {% macro input2(names, values='', types='text') %}
        <input name="{{names}}", value="{{values}}", type="{{types}}">
    {% endmacro %}
  • 用于启动的 flask 项目文件(py 文件)
	@app.route("/")
	def index():
	    context = {
	        "conname": "名字",
	        "num": 66,
	        "books": {
	            'Python': 46,
	            'Java': 37,
	            'PHP': 33
	        }
	    }
	    return render_template("index.html", **context)

2.2、需要使用到 py 文件中的参数

  1. 可用直接使用
    <!-- conname 是在 flask 项目文件中定义了的变量 -->
    {{ ma.input2(conname, values="使用参数") }}
  1. 在宏的方法中使用,然后调用宏时一起调用
# 宏方法中使用, 如 conname
    {% macro input2(names, values='', types='text') %}
        <input name="{{conname}}", value="{{values}}", type="{{types}}">
    {% endmacro %}
    
# 一起调用
	{% import "macro.html" as ma with context %}
	{{ ma.input2(values="查看网页源码中该标签的属性") }}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值