if语句

格式:

{% if command %}
{% elif %}
{% else %}
{% endif %}

代码示例

flask_one.py

#encoding:utf-8
from flask import Flask,url_for,redirect,render_template app = Flask(__name__) @app.route('/<is_login>')
def index(is_login): if is_login == "1":        #模拟1为登陆成功
user = {
"aa":"test",
'bbb':'注销',
'age':"11"
}
return render_template('index.html',users=user)
else:
return render_template('index.html') if __name__ == '__main__':
app.run(debug=True)

index.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
{% if users and users.age >10 %}        #这里的users为py文件里传递的user字典,users.age为py文件user字典里的age
<a href="#">{{ users.aa }}</a>
<a href="#">{{ users.bbb}}</a>
{% else %}
<a href="#">登陆</a>
<a href="#">注册</a>
{% endif %}
</body>
</html>

url入口:127.0.0.1/{1,0..}

for语句

格式:

{% for .. %}
{% endfor %}

代码实现:

flask_one.py

#encoding:utf-8
from flask import Flask,url_for,redirect,render_template app = Flask(__name__) @app.route('/')
def index():
users = {
'username':'tsdf',
'age':11
}
return render_template('index.html',user=users)
if __name__ == '__main__':
app.run(debug=True)

index.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
{% for k,v in user.items() %}        #for语句
<p>{{ k }}----{{ v }}</p>
{% endfor %}
</body>
</html>

redirect 传数据到模板语言(flash)

from flask import redirect,flash

@app.route('/register',methods=['GET','POST'])
def register():
if request.method == 'GET':
return render_template('register.html')
else:
phone = request.form.get('phone')
uname = request.form.get('username')
pwd = request.form.get('password')
pwd1 = request.form.get('password1') user = User.query.filter(User.phone == phone).first() if user is not None:
return "用户已经存在"
else:
if phone == "" or uname == "":
flash('手机号或者用户名不能为空')
return redirect(url_for('register')) elif pwd != pwd1:
flash('两次输入的密码不匹配')
return redirect(url_for('register'))
else:
user = User(phone=phone,username=uname,password=pwd)
db.session.add(user)
db.session.commit()
# user = User.query.filter(User.phone == phone).first()
# print (user)
return redirect(url_for('login'))

模板语言:

{% extends 'common.html' %}
{% block title %}
注册
{% endblock %} {% block head %}
<link rel="stylesheet" href="{{ url_for('static',filename='css/login_regist.css') }}">
{% endblock %} {% block body %}
<div class="form-container">
<h4 style="text-align: center">注册</h4>
<form action="" method="POST"> <div class="form-group">
<span><input type="text" class="form-control" id="exampleInputEmail1" placeholder="手机号" name="phone"></span>
</div>
<div class="form-group">
<span><input type="text" class="form-control" id="exampleInputEmail1" placeholder="用户名" name="username"></span>
</div>
<div class="form-group">
<span><input type="password" class="form-control" id="exampleInputPassword1" placeholder="密码" name="password"></span>
</div>
<div class="form-group">
<span><input type="password" class="form-control" id="exampleInputPassword1" placeholder="重复密码" name="password1"></span>
</div> <button type="submit" class="btn btn-block" onclick="tj()">立即注册</button>
</form>
<p>
{% for message in get_flashed_messages() %}
{{ message }}
{% endfor %}
</p>

</div> {% endblock %}

代码示例:

flask_one.py

#encoding:utf-8
from flask import Flask,url_for,redirect,render_template app = Flask(__name__) @app.route('/')
def index():
books = [
{'name':'西游记','author':'吴承恩','price':111},
{'name': '红楼梦', 'author': '曹雪芹', 'price': 121},
{'name': '水浒传', 'author': '施耐庵', 'price': 131},
{'name': '三国演义', 'author': '罗贯中', 'price': 141}
]
return render_template('index.html',book=books) if __name__ == '__main__':
app.run(debug=True)

index.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body> <table border="1">
<thead>
<th>书名</th>
<th>作者</th>
<th>价格</th>
</thead>
<tbody>
{% for book in book %}        #for循环列表并打印字典里的内容
<tr>
<td>{{ book.name }}</td>
<td>{{ book.author }}</td>
<td>{{ book.price }}</td>
</tr>
{% endfor %}
</tbody>

</table> </body>
</html>

自定义错误信息

@app.errorhandler(404)
def page_noe_found(error):
return render_template('home/404.html'),404 @app.errorhandler(500)
def page_noe_found(error):
return render_template('home/500.html'),500

flask 模版语言及信息传递的更多相关文章

  1. puppet(4)-类、模版语言、模块

    puppet(4)-类.模版语言.模块 代码重用: class, module 类 类的简单说明 类是用于公共目的的一组资源,是命名的代码块,创建后可在puppet全局进行调用,类可以继承类是我们构建 ...

  2. Jinja2模版语言自定义filter的使用

    Jinja2模版语言,自带有一些filter,能够在前端的模版中控制数据按照相应的方式显示.比如以下两种filter,分别能在前端控制数字的近似精度显示和根据字符串长度补齐: round(value, ...

  3. Flask - 模板语言jinja2 和render_template高级用法

    目录 Flask - 模板语言jinja2 和render_template高级用法 一. 字典传递至前端 二. 列表传入前端Jinja2 模板的操作: 三. 大字典传入前端 Jinja2 模板 四. ...

  4. Django---MTV和MVC的了解,Django的模版语言变量和逻辑,常见的模板语言过滤器,自定义过滤器,CSRF了解,Django的母版(继承extends,块block,组件include,静态文件的加载load static),自定义simple_tag和inclusion_tag

    Django---MTV和MVC的了解,Django的模版语言变量和逻辑,常见的模板语言过滤器,自定义过滤器,CSRF了解,Django的母版(继承extends,块block,组件include,静 ...

  5. tg2015 信息传递 (洛谷p2661)

    题目描述 有n个同学(编号为1到n)正在玩一个信息传递的游戏.在游戏里每人都有一个固定的信息传递对象,其中,编号为i的同学的信息传递对象是编号为Ti同学. 游戏开始时,每人都只知道自己的生日.之后每一 ...

  6. Django模版语言 格式化显示 后台datatime()时间

    Django模版语言 格式化显示 后台datatime()时间 场景描述:

  7. [NOIP2015]信息传递

    [NOIP2015]信息传递[问题描述]有

  8. [NOIP2015] 提高组 洛谷P2661 信息传递

    题目描述 有n个同学(编号为1到n)正在玩一个信息传递的游戏.在游戏里每人都有一个固定的信息传递对象,其中,编号为i的同学的信息传递对象是编号为Ti同学. 游戏开始时,每人都只知道自己的生日.之后每一 ...

  9. 使用postMesssage()实现跨域iframe页面间的信息传递----转载

    由于web同源策略的限制,当页面使用跨域iframe链接时,主页面与子页面是无法交互的,这对页面间的信息传递造成了不小的麻烦,经过一系列的尝试,最后我发现有以下方法可以实现: 1. 子页面url传参 ...

随机推荐

  1. 实现中英文混合string的逆向输出

    #include <iostream> using namespace std; // 输入一个字符串(包括英文和中文),将其反序输出, 如: // hello 今天真热 ---> ...

  2. BZOJ3239Discrete Logging——BSGS

    题目大意:给出$P,B,N$,求最小的正整数$L$,使$B^L\equiv N(mod\ P)$. $BSGS$模板题. #include<set> #include<map> ...

  3. 基于 __new__ 方法的单例模式

    单例模式定义 首次实例化创建实例化对象 之后的每次实例化都用最初的实例化对象 即单实例模式 __new__ 的原理 __new__ 方法可以在 __init__ 方法执行 这样可以在初始化之前进行一系 ...

  4. Linux qemu-nbd mount qemu disk image

    Linux qemu-nbd mount qemu disk image deepin@deepin:~$ deepin@deepin:~$ qemu-nbd --help Usage: qemu-n ...

  5. jqGrid 手册 - 搜索

    搜索 类型: colModel Options Toolbar Searching Custom Searching Single field searching Advanced Searching ...

  6. 在 CentOS 上编写 init.d service script [转]

    背景:之前编写了一些脚本,下载了一些开源软件,想把它们做成系统服务,通过 service your_prog_name start 这样的方式来后台运行,并在开机时自动启动.在了解了 daemon 命 ...

  7. Codeforces 346D Robot Control(01BFS)

    题意 有一个 \(N\) 个点, \(M\) 条边的有向图, 初始有一个机器人在 \(1\) 号点. 每个时刻, 这个机器人会随机选择一条从该点出发地边并通过.当机器人到达点 \(N\) 时, 它就会 ...

  8. linux添加lvm磁盘大小,命令行创建swap

    添加硬盘 添加一块硬盘. 重新扫描硬盘 echo "- - -" > /sys/class/scsi_host/host0/scan echo "- - -&quo ...

  9. CANOE入门(一)

    CANoe是Vector公司的针对汽车电子行业的总线分析工具,现在我用CANoe7.6版本进行介绍,其他版本功能基本差不多. 硬件我使用的是CAN case XL. 1,CANoe软件的安装很简单,先 ...

  10. Zabbix-proxy安装部署

    原文链接:https://www.cnblogs.com/irockcode/p/6754659.html 环境: 因为公司需要监控远程客户机,但server端无法主动连接agent端,客户端可以连接 ...