首页 > 编程语言 > 详细

【Flask】 python学习第一章 - 4.0 钩子函数和装饰器路由实现

时间:2019-12-17 23:26:39      阅读:126      评论:0      收藏:0      [点我收藏+]

钩子函数和装饰器路由实现

before_request 每次请求都会触发             

before_first_requrest  第一次请求前触发 

after_request  请求后触发 并返回参数       

teardown_request  失败后触发 并返回异常 需要传入参数接收

技术分享图片
from flask import Flask, request

# 设置对象
app = Flask(__name__,
            static_url_path=/python27,
            static_folder=static,
            template_folder=templates)


# 第一次请求之前都会调用  例如mysql连接
@app.before_first_request
def before_first_request():
    print("before_first_request")

# 每次请求都会被调用
@app.before_request
def before_request():
    print("before_request")
    # request.remote_addr  用户访问IP地址
    # 判断如果访问地址在黑名单内 就return 黑名单
    if request.remote_addr == "127.0.0.1":
        return "黑名单"

# 请求之后会调用 并且在函数里面接收一个参数 响应
@app.after_request
def after_request(response):
    print("after_request")
    # 对响应数据进行统一处理 response返回数据为return数据
    return response


# 请求失败之后会调用函数 并且将异常传入参数
@app.teardown_request
def teardown_request(error):
    print("teardown_request")
    return error

@app.route(/)
def index():
    return "hello wowlrd"


if __name__ == __main__:
    app.run(host=127.0.0.1, port=8888, debug=True)
钩子函数

 

werkzeug工具集 

Request response routing模块 other

routing模块: Rule Map BaseConverters MapAdapter 

 

Request  常用属性 

data  form args cookies headers methods url files 

app.route("/data", methods=[‘POST‘])

def data():

  data = request.data 

  print(data)

  return "ok"

技术分享图片
from flask import Flask, request

app = Flask(__name__)


@app.route("/")
def index():
    return "index"


@app.route(/data, methods=[POST])
def data():
    data = request.data
    print(data)
    return ok


@app.route("/upload", methods=[POST])
def upload():
    file = request.files.get("pic")
    file.save("aaa.jpg")
    return "success"


if __name__ == __main__:
    app.run(debug=True)
data

 

状态保持

无状态:http 无状态协议 每次请求独立, 协议对事务没有记忆能力,  同一个url请求 没有上下文关系

解决无状态协议问题 

 客户端 cookie

服务器端 session 

【Flask】 python学习第一章 - 4.0 钩子函数和装饰器路由实现

原文:https://www.cnblogs.com/oscarli/p/12056826.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!