flask 模版语言及信息传递
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 模版语言及信息传递的更多相关文章
- puppet(4)-类、模版语言、模块
puppet(4)-类.模版语言.模块 代码重用: class, module 类 类的简单说明 类是用于公共目的的一组资源,是命名的代码块,创建后可在puppet全局进行调用,类可以继承类是我们构建 ...
- Jinja2模版语言自定义filter的使用
Jinja2模版语言,自带有一些filter,能够在前端的模版中控制数据按照相应的方式显示.比如以下两种filter,分别能在前端控制数字的近似精度显示和根据字符串长度补齐: round(value, ...
- Flask - 模板语言jinja2 和render_template高级用法
目录 Flask - 模板语言jinja2 和render_template高级用法 一. 字典传递至前端 二. 列表传入前端Jinja2 模板的操作: 三. 大字典传入前端 Jinja2 模板 四. ...
- Django---MTV和MVC的了解,Django的模版语言变量和逻辑,常见的模板语言过滤器,自定义过滤器,CSRF了解,Django的母版(继承extends,块block,组件include,静态文件的加载load static),自定义simple_tag和inclusion_tag
Django---MTV和MVC的了解,Django的模版语言变量和逻辑,常见的模板语言过滤器,自定义过滤器,CSRF了解,Django的母版(继承extends,块block,组件include,静 ...
- tg2015 信息传递 (洛谷p2661)
题目描述 有n个同学(编号为1到n)正在玩一个信息传递的游戏.在游戏里每人都有一个固定的信息传递对象,其中,编号为i的同学的信息传递对象是编号为Ti同学. 游戏开始时,每人都只知道自己的生日.之后每一 ...
- Django模版语言 格式化显示 后台datatime()时间
Django模版语言 格式化显示 后台datatime()时间 场景描述:
- [NOIP2015]信息传递
[NOIP2015]信息传递[问题描述]有
- [NOIP2015] 提高组 洛谷P2661 信息传递
题目描述 有n个同学(编号为1到n)正在玩一个信息传递的游戏.在游戏里每人都有一个固定的信息传递对象,其中,编号为i的同学的信息传递对象是编号为Ti同学. 游戏开始时,每人都只知道自己的生日.之后每一 ...
- 使用postMesssage()实现跨域iframe页面间的信息传递----转载
由于web同源策略的限制,当页面使用跨域iframe链接时,主页面与子页面是无法交互的,这对页面间的信息传递造成了不小的麻烦,经过一系列的尝试,最后我发现有以下方法可以实现: 1. 子页面url传参 ...
随机推荐
- 微信小程序——代码片段汇集
导航栏 作者:beatzcs 链接:https://www.jianshu.com/p/c681007a6287 这个导航虽然已经很完善了,不过还是要根据自己的来进行修改的 tabs.wx ...
- IDM下载神器
破解版IDM 个人评价:基本上能满足日常下载需求,除bt.磁力外. 不管是在线视频, 还是音乐, 电子书, 统统都能下载, 还附有爬虫功能~~ 直接附链接: 百度云链接: https://pan.ba ...
- Sorting It All Out POJ - 1094 拓扑排序
题意:给N个字母,和M个偏序关系 求一个可确定的全序,可确定是指没有其他的可能例如A>B D>B 那么有ADB DAB两种,这就是不可确定的其中,M个偏序关系可以看做是一个一个按时间给出的 ...
- Linux的Shell练习--个人笔记
一. 实验准备(预防抄袭,此步必做) 1. 请将提示符设为:学号加波浪号.输入PS1=学号~,如PS1=110015~, 回车执行 2. 如发现提示符.学号不匹配, 视为抄袭或无效 二. 实验项目 1 ...
- kubernetes(一)
•Kubernetes介绍 1.背景介绍 云计算飞速发展 - IaaS - PaaS - SaaS Docker技术突飞猛进 - 一次构建,到处运行 - 容器的快速轻量 - 完整的生态环境 2.什 ...
- new 经典基础模板总结
NOIP-NOI-ZJOI基础模板总结 目录 C++语言和STL库操作 重载运算符操作 /* 重载运算符 格式 如重载小于号 这里是以x递减为第一关键字比较,y递减为第二关键字比较 */ bool o ...
- GCC online documentation
@2019-02-21 [小记] 编译规则.关键字属性等一些参考手册说明 GCC online documentation
- 「HNOI2016」树 解题报告
「HNOI2016」树 事毒瘤题... 我一开始以为每次把大树的子树再接给大树,然后死活不知道咋做,心想怕不是个神仙题哦 然后看题解后才发现是把模板树的子树给大树,虽然思维上难度没啥了,但是还是很难写 ...
- LVS-Keepalived高可用集群(DR)
LVS-DR+Keepalived高可用集群 -------client------------------主LVS--------------------从LVS------------------ ...
- [WC2014]紫荆花之恋(动态点分治+替罪羊思想)
题目描述 强强和萌萌是一对好朋友.有一天他们在外面闲逛,突然看到前方有一棵紫荆树.这已经是紫荆花飞舞的季节了,无数的花瓣以肉眼可见的速度从紫荆树上长了出来.仔细看看的话,这个大树实际上是一个带权树.每 ...