Flask消息验证与提示
一,消息提示基本语法。
1,先新建一个Flask工作空间。

2,新建后自动得到一个app.py文件,直接运行可以看到基本效果。然后引入
from flask import flash。使用这个flash时候需要配置秘钥secret_key,flask会通过它对消息进行加密。并引入模板库
render_template。
3,在“templates”文件夹下新建“index.html”文件,代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>Hello,Login</h1> <h2>{{ get_flashed_messages()[0] }}</h2>
</body>
</html>
注:第10行是获取flash的函数,返回的是list,所以在后面加上序号。
app.py代码:
from flask import Flask,flash,render_template app = Flask(__name__)
app.secret_key = '' @app.route('/')
def hello_world():
flash("Hello JiKeXueYuan!")
return render_template("index.html") if __name__ == '__main__':
app.run()
结果:

可以看到,接受的"Hello JiKeXueYuan!"已经显示到网页上了。这句话就是提示语句,比如你填写表单时你忘记填一个东西他会提示你就用这个方法做。
二,表单提示实例
app.py
from flask import Flask,flash,render_template,request app = Flask(__name__)
app.secret_key = '' @app.route('/')
def hello_world():
flash("Hello JiKeXueYuan!")
return render_template("index.html") @app.route("/login",methods=['POST'])
def login():
form = request.form
username = form.get('username')
password = form.get('password') if not username:
flash("Please input username!")
return render_template("index.html")
if not password:
flash("Please input password!")
if username == "jkxy" and password=="":
flash("Login success!")
return render_template("index.html")
else:
flash("Username or Password is wrong!")
return render_template("index.html")
if __name__ == '__main__':
app.run()
注意:这里要用一个request用于13行的表单数据的请求。
注意:index和app里的传递方法都是POST,要一致才行。而且注意app里的写法是“methods=['POST']”
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>Hello,Login</h1>
<form action="/login" method="post">
{#action方法注意,POST#}
<input type="text" name="username">
<input type="password" name="password">
<input type="submit" value="Submit">
</form>
<h2>{{ get_flashed_messages()[0] }}</h2>
</body>
</html>
结果:
1,不填表单直接提交:

2,只填写用户名:

大家有没注意到1中“Hello JiKeXueYuan!”这句话直接出现在1图中,但是在输入框中输入文字后,本来显示这句话的位置变成了提示语句。
因为这些语句都在app.py中第9行的模板是index(此时URL页面显示在根目录),而在index中还有表单语句,在表单中输入内容后跳转到login。
3,都填错了:

4,都填对了(我们在代码中内置了用户名和密码:jkxy,123):

注意点:
当没有加入根目录是时候:

则会出现以下情况:

Flask消息验证与提示的更多相关文章
- Flask消息闪现
目录 Flask消息闪现 简单的例子 闪现消息的类别 过滤闪现消息 Message Flashing 参考 Flask消息闪现 一个好的应用和用户界面都需要良好的反馈.如果用户得不到足够的反馈,那么应 ...
- 我们一起学习WCF 第三篇头消息验证用户身份
前言:今天我主要写的是关于头消息的一个用处验证用户信息 下面我画一个图,可以先看图 第一步:我们先开始做用户请求代码 首先:创建一个可执行的上下文对象块并定义内部传输的通道 using (Operat ...
- 解决视图状态消息验证代码 (MAC) 错误
https://blog.csdn.net/bingtingabc/article/details/49148745 2015年10月15日 10:05:56 bingtingabc 阅读数:3397 ...
- 目录视图摘要视图订阅 基于Extjs开发不允许为空的文本框提示及相应的验证错误提示(转)
原文地址:http://blog.csdn.net/kunoy/article/details/8007585 本文主要解决问题: 1.区分哪些文本框不允许为空,很多网站都采用在文本框后加*号,ext ...
- jquery.validate自定义验证--成功提示与择要提示
1. 自定义验证--成功提示 1) 添加选项 errorClass: "unchecked", validClass: "checked", errorElem ...
- jquery.validate自己定义验证--成功提示与择要提示
1. 自己定义验证--成功提示 1) 加入选项 errorClass: "unchecked". validClass: "checked", errorEle ...
- flask 自定义验证器(行内验证器、全局验证器)
自定义验证器 在WTForms中,验证器是指在定义字段时传入validators参数列表的可调用对象,下面来看下编写自定义验证器. 行内验证器 除了使用WTForms提供的验证器来验证表单字段,我们还 ...
- .NET CORE 微信小程序消息验证的坑
进入微信小程序,点击开发->选择消息推送->扫码授权,填写必要参数 进入接口开发: /// <summary> /// 验证小程序 /// </summary> / ...
- MVVM架构~knockoutjs系列之验证成功提示显示
返回目录 对于knockout.validation来说,我们已经知道了如何去验证大部分表单元素,而有时,我们的需求希望在每个元素验证成功后,去显示正确的提示,这个我们很容易的使用self.元素.is ...
随机推荐
- Android相关面试题---面试官常问问题
版权声明:本文为寻梦-finddreams原创文章,请关注: http://blog.csdn.net/finddreams/article/details/44513579 一般的面试流程是笔试完就 ...
- 开发一个项目之ES2015+
变量的解构赋值 任何部署了 Iterator 的对象都可 for of 循环(数组.Set.Map.某些类似数组的对象(arguments对象.DOM NodeList 对象).Generator 对 ...
- word20161231
1. measurement 英[ˈmeʒəmənt]美[ˈmeʒərmənt]n. 量度; 份量,尺寸; 测量法; (量得的) 尺寸;[例句]We took lots of measurements ...
- static 关键字 静态成员变量及静态成员函数
static类成员 类成员类似于C语言的全局变量,但是与全局变量又有所不同,例如,全局变量是可以被任何的用户代码所修改,而且全局变量破坏了对象的封装性. 使用类的 static 成员的优点 使用 st ...
- Interface Comparable<T>
Interface Comparable<T> : 该接口对实现它的每个类的对象强加一个整体排序. 这个排序被称为类的自然排序 ,类的compareTo方法被称为其自然比较方法 . 参数 ...
- 适合高要求应用的高性能MEMS IMU解决方案
对于复杂且高动态惯性配置的MEMS IMU应用,评估功能时需要考虑许多属性.在设计周期早期评估这些属性优于追逐开放性成果,从而实现“尽可能精确”.ADI近期举行的在线研讨会[适合高要求应用的高性能ME ...
- codeforces 1151 A
一个让我爆零的水题,,,,, codeforces 1151A 1000分 题意:一个字符串,单个字符可以一步可以变成左右两个(Z可以变成Y,A),问最低多少步可以产生“ACTG”: 错因:错误的 ...
- go语言map操作
package main import "fmt" func main() { var m = map[int]string{ 90: "优秀", 80: &q ...
- Kubernetes的十大使用技巧
1. bash针对kubectl命令的自动补充这可能是在使用Kubernetes过程中最容易做的事,但它也是其中一个最有用的.要添加自动补充功能,如果使用bash,只需执行以下命令: echo &qu ...
- SpringBoot@GeneratedValue 四种参数
按照大家学习SpringBoot的经验来看, SpringBoot的@GeneratedValue 是不需要加参数的,但是如果数据库控制主键自增(auto_increment), 不加参数就会报错.( ...