我已使用此代码使用python flask解析csv
from flask import Flask, make_response, request, render_template
import csv
app = Flask(__name__)
def transform(text_file_contents):
#return text_file_contents.replace("=", ",")
return text_file_contents
@app.route('/')
def form():
return """ Transform a file demo
<form action="/transform" method="post" enctype="multipart/form-data">
<input type="file" name="data_file" />
<input type="submit" />
<form>"""
@app.route('/transform', methods=["POST"])
def transform_view():
file = request.files['data_file']
if not file:
return "No file"
file_contents = file.stream.read().decode("utf-8")
csv_input = csv.reader(file_contents)
result = transform(file_contents)
print result
return result
return render_template('commission.sh', result=result)
if __name__ == "__main__":
import webbrowser
webbrowser.open('localhost:5000')
app.run()
以上是解析csv并显示输出。但我需要将输出作为输入发送到shell脚本以继续进行shell脚本本身..提前感谢...
答案 0 :(得分:0)
起初,我对commission.sh
的内容感到好奇。您需要传递模板文件名作为render_template
的第一个参数。 Jinja无法为您执行shell脚本。
正如第一个答案所指出的那样,第一个return
语句之后的内容将不会被执行。无论您使用何种编程语言。
您可以按照此question在python(flask)中执行shell脚本。然后在视图函数中返回结果。
如果解析csv是一项耗时的任务,我建议您尝试使用Celery
烧瓶。