关于flask

Posted yundong333

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于flask相关的知识,希望对你有一定的参考价值。

1.消息提示

1. 消息提示

flask 中提供了消息闪现机制,方便我们消息提示,所使用的模块是 flash 模块。在我们使用 flash 时,我们需要调用app.secret_key 字段,该字段会对消息进行加密。具体代码如下:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from flask import Flask, render_template, flash

app = Flask(__name__)
app.secret_key = 123456


@app.route(/)
def hello_world():
    flash(hello flash)
    return render_template("index.html")


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

 

之后,我们编写 index.html 页面。在该页面中,我们使用 get_flashed_messages() 函数来得到flash中的内容,但注意,这个返回的是一个数组,因为我们只有一条消息,所以我们只取第一个元素,具体代码如下:

<!DOCTYPE html>
<html>
<head>
    <title>Test</title>
</head>
<body>
<h1>Hello</h1>

<h2> get_flashed_messages()[0] </h2>
</body>
</html>

2.异常处理

在开发时,后台出现异常 ,但不想把异常显示给用户或者要统一处理异常时,可以使用abort主动抛出异常,再捕获异常返回美化后的页面。

主动抛出异常

@user.route(/testError)
def testError():
    print (testError)
    abort(404)

使用装饰器errorhandler捕获异常:

@user.errorhandler(404)
def error(e):
    return render_template(exception/404.html) // 自己装饰页面 这样就能比较友好的处理 404 错误。

 

技术图片

 

 

 

@app.errorhandler(404) #错误句柄,提示404错误信息
def not_found1(e):
    title1="error:404"
    header1="Welcome to error:404 page"
    content1="This page went to Mars!"
    #渲染呈现错误信息子页404.html
    return render_template(404.html,title=title1, header=header1, content=content1)

@app.errorhandler(500) #错误句柄,提示500错误信息
def not_found2(e):
    title1="error:500"
    header1="Welcome to error:500 page"
    content1="This page has been aborted!"
    #渲染呈现错误信息子页500.html
    return render_template(500.html,title=title1, header=header1, content=content1)

 

 

对于异常,通常可以分为两类:一类是可以预知的异常,我们通常会用try...except....捕捉,第二类是未知的error,我们是无法预知的。

    try:

      code block

    except A:

      except A handle

    except:

      other except

    else:

      if no exception, excute here

    finally:

      code

    对于try....except捕捉异常,如果在try中发生了异常,会在except中捕捉到,并处理。如果没有发生异常,会执行else语句

    但是不论异常是否发生,都会执行finally语句,所以我们一般会在finally语句中释放资源。

下面是 Python 异常处理机制的语法结构:

try:
    #业务实现代码
    ...
except (Error1, Error2, ...) as e:
    alert 输入不合法
    goto retry

如果在执行 try 块里的业务逻辑代码时出现异常,系统自动生成一个异常对象,该异常对象被提交给 Python 解释器,这个过程被称为引发异常。

当 Python 解释器收到异常对象时,会寻找能处理该异常对象的 except 块,如果找到合适的 except 块,则把该异常对象交给该 except 块处理,这个过程被称为捕获异常。如果 Python 解释器找不到捕获异常的 except 块,则运行时环境终止,Python 解释器也将退出。

try:
    f = open(temp.txt,w)
    print(f.write(到底写进去了没有呢?))
    sum = 1 + 1
except OSError as reason:
    print(不存在这个文件 + str(reason))
except TypeError as reason:
    print(类型错误 + str(reason))
finally:
    f.close()  #如果不关闭的话,就没有写进去

 

以上是关于关于flask的主要内容,如果未能解决你的问题,请参考以下文章

Flask关于Flask的request属性

关于Flask框架使用

[Python][flask][flask-login]关于flask-login中各种API使用实例

flask关于跨域的问题

关于flask

12_关于flask中的宏