Flask框架学习笔记之消息提示与异常处理操作详解

作者:Cytues 时间:2021-05-17 15:03:02 

本文实例讲述了Flask框架学习笔记之消息提示与异常处理操作。分享给大家供大家参考,具体如下:

flask通过flash方法来显示提示消息:


from flask import Flask, flash, render_template, request, abort

app = Flask(__name__)
app.secret_key = '520'

@app.route('/')
def index():
 flash("Hello loli")
 return render_template("flash.html")

flash模板:flask开放了get_flashed_messages函数给模板使用,用来得到视图函数中的flash里的字符串(消息)。


<!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>

这里制作一个简单的表单模拟登陆界面提示:使用request方法得到输入表单中的数据。


@app.route('/login', methods=['POST'])
def login():
 # 获取表单
 form = request.form
 # 获取表单数据
 username = form.get('username')
 password = form.get('password')
 # 若不存在username则flash(xxx)
 if not username:
   flash('Please input username')
   return render_template("flash.html")
 if not password:
   flash('Please input password')
   return render_template("flash.html")

if username == "loli" and password == "520":
   flash("Login success")
   return render_template("flash.html")
 else:
   flash("username or password wrong")
   return render_template('flash.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">
 <input type="text" name="username">
 <input type="password" name="password">
 <input type="submit" value="Submit">
</form>

<h2>{{ get_flashed_messages()[0] }}</h2>

</body>
</html>

Flask框架学习笔记之消息提示与异常处理操作详解

未输入任何数据提示输入username

Flask框架学习笔记之消息提示与异常处理操作详解

未输入密码显示的flash提示消息。

Flask框架学习笔记之消息提示与异常处理操作详解

用户名和密码不符时。

Flask框架学习笔记之消息提示与异常处理操作详解

登陆成功界面。

flask同样可以自己设置404等错误界面:flask提供了errorhandler修饰器来设置自己的错误界面。


@app.errorhandler(404)
def not_found(e):
 return render_template("404.html")

自己设置的简单404错误模板:


<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Title</title>
</head>
<body>
 <h1>404 页面不存在</h1>
 <h2>Sorry</h2>
</body>
</html>

Flask框架学习笔记之消息提示与异常处理操作详解

也可以在正常的界面发生404错误时转到这个模板装饰:用flask import abort方法来引起一个404错误. 只要user_id不为520则触发404页面。


@app.route('/users/<user_id>')
def users(user_id):
 if int(user_id) == 520:
   return render_template("user.html")
 else:
   abort(404)

user模板:


<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Title</title>
</head>
<body>
 <h1>Loli </h1>
</body>
</html>

源码:


#-*- coding:utf-8 -*-
from flask import Flask, flash, render_template, request, abort

app = Flask(__name__)
app.secret_key = '520'

@app.route('/')
def index():
 flash("Hello loli")
 return render_template("flash.html")

@app.route('/login', methods=['POST'])
def login():
 # 获取表单
 form = request.form
 # 获取表单数据
 username = form.get('username')
 password = form.get('password')
 # 若不存在username则flash(xxx)
 if not username:
   flash('Please input username')
   return render_template("flash.html")
 if not password:
   flash('Please input password')
   return render_template("flash.html")

if username == "loli" and password == "520":
   flash("Login success")
   return render_template("flash.html")
 else:
   flash("username or password wrong")
   return render_template('flash.html')

@app.errorhandler(404)
def not_found(e):
 return render_template("404.html")

@app.route('/users/<user_id>')
def users(user_id):
 if int(user_id) == 520:
   return render_template("user.html")
 else:
   abort(404)

if __name__ == '__main__':
 app.run()

希望本文所述对大家基于flask框架的Python程序设计有所帮助。

来源:https://blog.csdn.net/qq_41805514/article/details/80779442

标签:Flask,消息提示,异常处理
0
投稿

猜你喜欢

  • Python3实现打格点算法的GPU加速实例详解

    2022-05-26 23:20:30
  • Django2.1.7 查询数据返回json格式的实现

    2023-09-28 09:54:20
  • 使用Pandas将inf, nan转化成特定的值

    2023-04-15 23:36:33
  • 如何基于Python深度图生成3D点云详解

    2022-03-08 16:41:11
  • W3C 发布 XMLHttpRequest 工作草图

    2008-04-28 13:00:00
  • 兼容firefox的给每一个onClick再附加一个事件

    2023-08-24 18:29:47
  • Python实现的金山快盘的签到程序

    2022-12-05 21:14:51
  • 用自定义html标签让IE支持html 5新增元素

    2008-03-18 12:57:00
  • PHP脚本内存泄露导致Apache频繁宕机解决方法

    2023-11-15 12:52:39
  • Python实现读取文件最后n行的方法

    2023-08-02 10:33:32
  • python 执行shell命令并将结果保存的实例

    2023-07-27 20:34:52
  • python绘制地震散点图

    2021-12-21 13:09:08
  • asp提高首页性能的一个技巧

    2008-04-05 06:54:00
  • Windows XP操作系统下的MYSQL安装过程

    2008-11-24 12:52:00
  • python 爬取英雄联盟皮肤并下载的示例

    2023-07-22 09:57:45
  • python处理Excel xlrd的简单使用

    2023-11-29 04:13:32
  • 使用ERWin进行基于MySQL数据库的物理设计

    2009-01-04 12:54:00
  • Python ArcPy实现批量拼接长时间序列栅格图像

    2021-09-07 18:48:53
  • 使用python 获取进程pid号的方法

    2023-06-11 21:25:52
  • Oracle学习笔记(四)

    2012-01-05 18:57:33
  • asp之家 网络编程 m.aspxhome.com