我正在尝试创建一个Flask应用程序,它从我的HTML文件中的textarea中读取文本函数,并评估它存储在实际函数中,因此我可以随时使用自己的参数调用它。例如,如果textarea包含函数:
def(a,b):
return a+b
然后我希望能够将它存储到Flask应用程序中的变量func,并调用func(1,2)并获得3.这可能吗?对于它的价值,我的准系统Flask应用程序包括在下面:
from flask import Flask
from flask import request
from flask import render_template
app = Flask(__name__)
@app.route('/')
def strategy():
return render_template("default.html")
@app.route('/', methods=['POST'])
def strategy_post():
strategy_raw = request.form['strategy_input']
return ???
if __name__ == "__main__":
app.run()
使用模板:
<!DOCTYPE html>
<html lang="en">
<body>
<h1>Input a function below</h1>
<form action="." method="POST">
<textarea type="text" name="strategy_input"></textarea>
<button type="submit" name="submit" value="Send">
</form>
</body>
答案 0 :(得分:0)
只需付出一点努力,但这是一个非常糟糕的主意,因为这是任何人在您的服务器上执行任意代码的直接方式。如果你仍然想要这样做,你可以先查看eval和exev,但在使用之前先三思而后并在继续之前至少阅读exec-in-python。< / p>
>>> foo = eval('lambda x, y: x +y ')
>>> foo(1, 2)
3