在特定路由- Flask之后运行方法



是否有可能仅在调用特定路由'/data_extractor_export'或方法'export'时调用'after_request'方法?并不是每次app路由的时候。

我的代码

@dataextractorController.route('/data_extractor_export', methods=['GET', 'POST'])
def export():
try:
file_name = request.form.get('file_name')
file_path = '../MT_Data/Dataset_Download/Data-Extractor/' + str(file_name) + '/'
file_temp_download = '../WEB_Data/data/Dataset_Upload/' + str(file_name)
shutil.make_archive(file_temp_download, 'zip', file_path)
print('Y')
return send_file(os.path.join(file_temp_download + '.zip'), as_attachment=True)
except:
e = sys.exc_info()[1]
return error_handler(str(e))

@dataextractorController.after_request
def post_process(response):
dir = '../WEB_Data/data/Dataset_Upload/'
for f in os.listdir(dir):
if '.zip' in str(f):
os.remove(os.path.join(dir, f))
return response

感谢

示例:

from flask import Flask, request
app = Flask(__name__)

@app.route('/')
def hello_world():
return 'Hello World!'

@app.route('/skip')
def skip():
return 'Hello World!'

white_routes = (
"/skip",
)

@app.after_request
def mid(response):
if request.path in white_routes:
return response
print(request.path)
return response

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

最新更新