是否有可能仅在调用特定路由'/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)