我有一个Python脚本main.py,它接收了两个参数(两个文本文件)。
我在使用MAC OS X Python 2.7
这很容易在终端机上运行。
python main.py train.txt sample.txt
我现在已经用Flask开发了一个小型的前端,其中有非常小的HTML,如下所示。
#front.py FLASK
from flask import Flask, render_template, request, redirect
app = Flask(__name__)
@app.route('/')
def hello_world():
return render_template('index.html')
@app.route('/signup', methods = ['POST'])
def signup():
email = request.form['email']
email1 = request.form['email1']
# command below is just for testing, I wish to implement the same as this would if this would be typed in terminal.
print("main.py " + email + " " + email1)
return redirect('/')
if __name__ == "__main__":
app.run()
和HTML
<!DOCTYPE html>
<title>T</title>
</head>
<form action="/signup" method="post">
<input type="text" name="email"></input>
<input type="text" name="email1"></input>
<input type="submit" value="Signup"></input>
</form>
</body>
</html>
这段HTML代码只是用一个表单来接收2个参数(我觉得这比JS容易,因为我没有这方面的经验)。
我刚刚写了
print("main.py " + email + " " + email1)
上面的命令来测试,它暂时没有任何效用。
参数的使用。
#main.py
from filter import Filter
import sys
# Get arguments from user
train = sys.argv[1]
messages = sys.argv[2]
# Open files for reading and writing
train_file = open(train, "rb")
messages_file = open(messages, "rb")
predictions_file = open("predictions.txt", "w")
# Create new filter and train it using the train-file
f = Filter()
f.train(train_file)
#filter the messages in messages_file, write results to predictions_file
f.filter(messages_file, predictions_file)
# Close all the files
train_file.close()
messages_file.close()
predictions_file.close()
我希望现在通过这个flask应用程序本身来运行我的脚本,也就是main.py,我想知道这怎么可能。
我在使用import main和另一个应用装饰器(如/exec),并手动将URL从127.0.0.2000改为127.0.0.2000/exec,但这导致了错误,因为main需要传递参数。
如果我对问题的解释不清楚,请让我知道,如果我可以用更好的方式解释,以帮助理解这个问题。