一,消息提示基本语法。

  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消息验证与提示的更多相关文章

  1. Flask消息闪现

    目录 Flask消息闪现 简单的例子 闪现消息的类别 过滤闪现消息 Message Flashing 参考 Flask消息闪现 一个好的应用和用户界面都需要良好的反馈.如果用户得不到足够的反馈,那么应 ...

  2. 我们一起学习WCF 第三篇头消息验证用户身份

    前言:今天我主要写的是关于头消息的一个用处验证用户信息 下面我画一个图,可以先看图 第一步:我们先开始做用户请求代码 首先:创建一个可执行的上下文对象块并定义内部传输的通道 using (Operat ...

  3. 解决视图状态消息验证代码 (MAC) 错误

    https://blog.csdn.net/bingtingabc/article/details/49148745 2015年10月15日 10:05:56 bingtingabc 阅读数:3397 ...

  4. 目录视图摘要视图订阅 基于Extjs开发不允许为空的文本框提示及相应的验证错误提示(转)

    原文地址:http://blog.csdn.net/kunoy/article/details/8007585 本文主要解决问题: 1.区分哪些文本框不允许为空,很多网站都采用在文本框后加*号,ext ...

  5. jquery.validate自定义验证--成功提示与择要提示

    1. 自定义验证--成功提示 1) 添加选项 errorClass: "unchecked", validClass: "checked", errorElem ...

  6. jquery.validate自己定义验证--成功提示与择要提示

    1. 自己定义验证--成功提示 1) 加入选项 errorClass: "unchecked". validClass: "checked", errorEle ...

  7. flask 自定义验证器(行内验证器、全局验证器)

    自定义验证器 在WTForms中,验证器是指在定义字段时传入validators参数列表的可调用对象,下面来看下编写自定义验证器. 行内验证器 除了使用WTForms提供的验证器来验证表单字段,我们还 ...

  8. .NET CORE 微信小程序消息验证的坑

    进入微信小程序,点击开发->选择消息推送->扫码授权,填写必要参数 进入接口开发: /// <summary> /// 验证小程序 /// </summary> / ...

  9. MVVM架构~knockoutjs系列之验证成功提示显示

    返回目录 对于knockout.validation来说,我们已经知道了如何去验证大部分表单元素,而有时,我们的需求希望在每个元素验证成功后,去显示正确的提示,这个我们很容易的使用self.元素.is ...

随机推荐

  1. 模拟赛20181015 Uva1078 bfs+四维dp

    题意:一张网格图,多组数据,输入n,m,sx,sy,tx,ty大小,起终点 接下来共有2n-1行,奇数行有m-1个数,表示横向的边权,偶数行有m个数,表示纵向的边权 样例输入: 4  4  1  1  ...

  2. 一些C语言基础知识

    位运算 // 按位与&: 2 & 3 = 2: 010 & 011 = 010   两个1才为1 // 按位或|: 2 | 3 = 3: 010 | 011 = 011   只 ...

  3. windows命令提示符

    基本命令: d: cd wenjian cd.. dir -------------- ---- ------ ------ ------ ---- 维基:dos DOS,是磁盘操作系统(英文:Dis ...

  4. HDU-1028 Ignatius and the Princess III(生成函数)

    题意 给出$n$,问用$1$到$n$的数字问能构成$n$的方案数 思路 生成函数基础题,$x^{n}$的系数即答案. 代码 #include <bits/stdc++.h> #define ...

  5. Machine Learning 思维导图

    Feature Enigneering 经用 sns.distplot 测试 一个Series 做 StandardScaler().fit_transform(Seriese) 之前和之后的图形形状 ...

  6. L1-Day9

    1.学习让我感觉很棒.(什么关系?动作 or 描述?主语部分是?)         [我的翻译]Learning makes me that feel good.         [标准答案]Lear ...

  7. TypeScript 错误property does not exist on type Object

    TypeScript 错误property does not exist on type Object 在TypeScript中如果按JS的方式去获取对象属性,有时会提示形如Property 'val ...

  8. docker中的镜像中运行Django项目

    首先要在镜像中 安装python3 以及 django2.0.4 目前我用的是这两个版本. 进入镜像 创建项目 进入项目中修改setting文件 将引号和星号添加进括号中 ALLOWED_HOSTS ...

  9. UGUI打字机效果文本组件

    using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; ...

  10. c++入门篇五

    默认参数: //默认参数//函数的默认参数,参数后面有'='//函数参数注意事项,如有一个位置有了默认参数//那么从该位置的后面就必须要有参数 , ) { //b有默认参数,b的后面也应该要有默认参数 ...