我想要一个快速而肮脏的Flask测试服务器,在那里我可以输入一个url路径
0.0.0.0/**something**并让它调用同名的相应方法。
如下所示:
from flask import Flask
app = Flask(__name__)
@app.route('/<action>')
def do_it(action=None):
if {PSEUDO: The method exists, call it}
else:
return 'Action not found'
def something():
return 'Did something'
if __name__ == '__main__':
app.run()Flask有没有一种机制来帮助解决这个问题,或者我必须弄乱反射?
发布于 2013-06-27 00:53:29
不知道这有多混乱,但看起来很简单:
try:
return globals()[action]()
except KeyError:
return 'Action not found' 发布于 2013-06-27 01:09:34
允许客户端在您的服务器上运行任意代码是一个非常糟糕的想法。相反,请考虑将所有可用操作放在一个类中,并将选择限制为该类的方法:
from flask import Flask
app = Flask(__name__)
class Actions:
def something(self):
return 'Did something'
def something_else(self):
return 'Did something else'
my_actions = Actions()
@app.route('/<action>')
def do_it(action = None):
op = getattr(my_actions, action, None)
if callable(op):
return op()
else:
return 'Action not found'
if __name__ == '__main__':
app.run(debug = True)https://stackoverflow.com/questions/17325667
复制相似问题