【发布时间】:2016-10-04 13:28:06
【问题描述】:
可以继承Flask:
from flask import Flask
class MyServer(Flask):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
def my_cool_method(self):
print("About to do some crazy productive work!")
通过这样做,可以创建一个MyServer 对象并定义一个路由,该路由在命中时调用一个方法。
my_server = MyServer(__name__)
@my_server.route("/my_cool_endpoint")
def my_cool_endpoint():
my_server.my_cool_method()
有没有什么可能的方法可以去掉这个看似不必要(而且相当不可持续)的步骤,并简单地用路线装饰一个方法?
我的伪代码类似于...
#!/usr/bin/env python3
from flask import Flask
class MyServer(Flask):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
@self.route("/my_cool_endpoint")
def my_cool_method(self):
print("About to do some crazy productive work!")
if __name__ == "__main__":
my_server = MyServer(__name__)
# We can now hit 127.0.0.1:8080/my_cool_endpoint... hopefully
my_server.run(port=8080)
我的动机是简单地run 对象并让端点受到攻击,在每次 API 调用时修改对象的状态。
如果这不可能完全按照我的描述进行,那么实现我的目标最不冒犯的方式是什么?
【问题讨论】:
-
对不起,这有点难以理解。为什么简单的控制器不适合你?
标签: python python-3.x flask