请求拦截器
将请求拦截下来,通过的予以访问,不通过的就拦截。
没太看明白
在根目录下新建一个文件夹interceptor,然后创建一个auth.py:
from application import app
@app.before_request
def before_request():
app.logger.info("----------------------")
# return "OK" # 这里如果返回了OK,那么真实的结果就不会返回到浏览器了,浏览器只能看到”OK“
然后这个文件还要引入到注册文件中:
from interceptor.auth import *
如果return了OK,无论访问啥,都是返回OK,因为被拦截了。
除了before_request,还有after_request【云里雾里了】
# _*_ coding:utf-8 _*_
from application import app
@app.before_request
def before_request():
app.logger.info("-----------i am before_request-----------")
return
@app.after_request
def after_request( response):
app.logger.info("-----------i am after_request-----------")
return response
这样的话,网页该输出啥输出啥,然后debug输出:
--------------------------------------------------------------------------------
INFO in auth [H:\new_to_flask\interceptor\auth.py:6]:
-----------i am before_request-----------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
INFO in auth [H:\new_to_flask\interceptor\auth.py:12]:
-----------i am after_request-----------
--------------------------------------------------------------------------------
127.0.0.1 - - [17/Jun/2020 22:29:20] "GET /learning/ HTTP/1.1" 200 -
错误处理器
例如访问了一个不存在的资源怎么办,可以用这个方法。传说中的404。
同样在interceptor文件夹下创建errorhandler.py:
# _*_ coding:utf-8 _*_
from application import app
@app.errorhandler(404)
def my_error_404(e):
return "Opps,404啦"
注册文件中导入:
from controllers.index import index_page
from application import app
from interceptor.auth import *
from interceptor.errorhandler import *
from flask_debugtoolbar import DebugToolbarExtension
toolbar = DebugToolbarExtension(app)
app.register_blueprint(index_page,url_prefix='/learning')
然后在浏览器中输入一个不存在的路径: