रूप में परिभाषित किया (हालांकि इस सवाल बोतल के बारे में विशेष रूप से है, यह शीर्षक के अनुसार सामान्यीकृत किया जा सकता)एक डेकोरेटर समारोह एक उदाहरण चर
मैं एक वर्ग के अंदर बोतल के app.route()
डेकोरेटर का उपयोग करने के कोशिश कर रहा हूँ का उपयोग करना। हालांकि, फ्लास्क ऐप को इंस्टेंस वैरिएबल के रूप में प्रारंभ किया गया है, यानी self.server
ऐप पर सेट है। इसका मतलब है कि मैं सजावटी का उपयोग नहीं कर सकता, क्योंकि self
सजाए गए विधि के बाहर अपरिभाषित है। मैं निम्नलिखित करने में सक्षम होना चाहता हूं:
class MyClass:
def __init__(self):
self.server = Flask(__name__)
@self.server.route('/')
def home():
return '<h1>Success</h1>'
क्या इस मुद्दे के लिए कोई कार्य-आसपास है? कोई भी मदद बहुत ही सराहनीय होगी!
धन्यवाद! यह पूरी तरह से काम करता है –
मैं दलील दूंगा कि यह एक आगे दिखने वाला समाधान नहीं है, क्योंकि आप अंततः एक विशाल '__init __()' विधि के साथ हवादार हो जाएंगे जिसमें आपकी सभी रूट परिभाषाएं और उनकी संबंधित कार्यक्षमता शामिल है। ['Add_url_rule()' function] (http://flask.pocoo.org/docs/0.12/api/#flask.Flask.add_url_rule) का उपयोग करने के लिए बेहतर है, जैसा कि मेरे अपने (और @rumdrums ') में बताया गया है यह प्रश्न। – YellowShark
फ्लास्क के मामले में, यह शायद बेहतर है। हालांकि, यह उन लोगों के लिए भी एक अच्छा सवाल है जो फ्लास्क का उपयोग नहीं कर रहे हैं। इसके अतिरिक्त, इस तरह से परिभाषित कार्यों में 'add_url_rule' की तुलना में प्रति कार्य केवल एक और पंक्ति होती है, इसलिए मुझे नहीं लगता कि" एक विशाल '__init __() 'विधि" विशेष रूप से महत्वपूर्ण है। – IanPudney