Flask013_宏和 import 语句

Posted jason2018

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flask013_宏和 import 语句相关的知识,希望对你有一定的参考价值。

  • 宏  forms.html
 % macro input(name, value="",type="text") %
 <input type=" type " value=" value | escape " name=" name ">
 % endmacro %
 
 % macro textarea(name, value="", rows=10, cols=40) %
 <textarea name=" name " rows=" rows " cols=" cols ">
      value | escape 
 </textarea>
 % endmacro %
  • 宏使用 index.html
 % from \'forms.html\' import input as input_field %
 % from \'forms.html\' import textarea as textarea_field %
 <!DOCTYPE html>
 <html lang="en">
 
 <head>
     <meta charset="UTF-8">
     <title>宏和 import 语句</title>
 </head>
 
 <body>
     <dl>
         <dt>Username</dt>
         <dd> input_field(\'username\') </dd>
         <dt>Password</dt>
         <dd> input_field(\'password\', type="password")</dd>
     </dl>
     <p>
         textarea_field("comment")
     </p>
 </body>
 
 </html>
  • 模板调用
 @app.route("/")
 def index():
     return render_template("index.html")
  • 效果

 

流程控制 for标签和if标签

服务端代码

#在模板中我们能不能使用for循环,能不能使用if条件控制语句?答案是肯定的。除了流程控制语句外,这里还将讲述用面向对象的思想来写模板文件。
#服务端代码:
#coding:utf-8
from flask import Flask, render_template
app = Flask(__name__)

@app.route(‘/‘)
def index():
    ‘‘‘访问首页‘‘‘
    var_list = [‘tantianran‘,‘1234‘,‘元素a‘,‘aaaa‘,‘元素b‘]
    var_tuple = ("laowang","tantianran","dengwenqing")
    var_dict = {"key1":"value1","name":"tanzhenxing"}

    return render_template("example.html",
                           var_list = var_list,
                           var_tuple = var_tuple,
                           var_dict = var_dict
                        )
if __name__ == ‘__main__‘:
    app.run(debug=True)

前端代码:

前端代码(templates/example.html):
<!DOCTYPE HTML>
<html>
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>jinjia2模板for标签的使用</title>
    <link rel="stylesheet" type="text/css" href="">
</head>
<body>
    <header id="header" class="">
        <h1>导航栏</h1>
    </header>
    <!--
        作者:[email protected]
        时间:2017-05-15
        描述:/header
    -->
        <article>
            <h1>遍历后端传过来的列表</h1>
            <ul>
                {% for item in var_list %}
                <li>{{ loop.index }} {{ item }}</li>
                {% endfor %}
            </ul>
            <h1>遍历后端传过来的元组</h1>
            <ul>
                {% for item in var_tuple %}
                <li>{{ loop.index }} {{ item }}</li>
                {% endfor %}
            </ul>
            <h1>遍历后端传过来的字典</h1>
            <ul>
                {% for k,v in var_dict.items() %}
                <li>{{ loop.index }} {{ k,v }}</li>
                {% endfor %}
            </ul>
        </article>
        <footer>
            <h3>页脚部分</h3>
        </footer>
</body>
</html>

二、if标签

服务端代码:

#coding:utf-8
from flask import Flask, render_template
app = Flask(__name__)
@app.route(‘/user/‘)
@app.route(‘/user/<uname>‘)
def user(uname=None):
    ‘‘‘用户测试‘‘‘
    return render_template(‘label_user.html‘, uname=uname)
if __name__ == ‘__main__‘:
    app.run(debug=True)

前端代码:

前端代码(templates/label_user.html):
<!DOCTYPE HTML>
<html>
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>jinjia2模板if标签学习</title>
    <link rel="stylesheet" type="text/css" href="">
</head>
<body>
    {% if uname %}
    <h1>你好!,{{ uname }},欢迎访问</h1>
    {% else %}
    <h1>你好,我不认识你</h1>
    {% endif %}
</body>
</html>

三、页面的复用(jinjia2继承,页面继承)

服务端代码:

#coding:utf-8
from flask import Flask, render_template
app = Flask(__name__)
@app.route(‘/basetest/‘)
def basetest():
    ‘‘‘用户测试‘‘‘
    return render_template(‘new_index.html‘)

if __name__ == ‘__main__‘:
    app.run(debug=True)

前端代码:

前端代码:
1、templates/base.html
<!DOCTYPE HTML>
<html>
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    {% block title %}
    <title>这是基础页面</title>
    {% endblock %}
    <link rel="stylesheet" type="text/css" href="">
</head>
<body>
    <header id=header class="">
        <h1>导航栏</h1>
    </header>
    <article>
        {% block content%}
        内容区域
        {% endblock %}
        
        <!--继承独立的页脚部分的html-->
        {% include ‘footer.html‘ %}
    </article>
</body>
</html>

2、templates/footer.html
    <footer>
        <h3>页脚部分</h3>
    </footer>

3、templates/new_index.html
<!--继承base.html页面-->
{% extends ‘base.html‘ %}

<!--重写base.html页面中的title-->
{% block title %}
<title>12345</title>
{% endblock %}

<!--重写base.html页面中的内容区域-->
{% block content%}
    内容 哈哈哈
{% endblock %}


本文出自 “Fresh Air Team” 博客,请务必保留此出处http://freshair.blog.51cto.com/8272891/1927426

以上是关于Flask013_宏和 import 语句的主要内容,如果未能解决你的问题,请参考以下文章

013 turtle程序语法元素分析

python013 Python3 条件控制

流程控制 for标签和if标签

dljd_013_使用PreparedStatement避免SQL注入攻击

通过flask框架写成http接口调用Ansible

python flask怎么指定端口启动