0
這是可能的子類Flask
:是否有可能用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調用該對象的狀態。
如果這不可能完全像我所描述的那樣,那麼完成我的目標的最少的冒犯性方法是什麼?
我很抱歉,但它有點難以理解。爲什麼簡單的控制器不適合你? –
不要這樣做。不知道人們從哪裏獲得這種模式,但它沒有多大意義。你正在尋找工廠模式。 – davidism
@davidism我相信你是對的,但我不知道如何將工廠模式應用於我的問題,你似乎從我的問題推斷。我希望人們創建一個庫,其中用戶子類MyServer。工廠模式不能真正用在這裏(據我所知)。 – erip