टॉरनेडो में डिबग मोड कैसे सेट करें?


13

मैंने गुगली की और एक संकेत पाया कि मुझे टोरनेडो में डिबग मोड सेट करना चाहिए ताकि यह अपडेट पर फ़ाइलों को स्वचालित रूप से पुनः लोड कर सके। लेकिन मुझे डालने के लिए एक सटीक स्ट्रिंग नहीं मिली। मैं इस तरह से अलग संयोजन की कोशिश की, application.settings = {"Debug": True}लेकिन यह मदद नहीं करता है।


मुझे लगता है कि यह {"डिबग" होना चाहिए: सच}
जॉन्डिंघम

जवाबों:


12

यहाँ बवंडर साइट से एक उदाहरण दिया गया है:

if __name__ == "__main__":
    application = tornado.web.Application([
        (r"/", MainHandler) 
    ], debug=True)
    application.listen(8888)
    tornado.ioloop.IOLoop.instance().start()

2
"डिबग = ट्रू" को काम करने के लिए हैंडलर की सूची से बाहर होना है --- इस तरह: "...], डीबग = ट्रू)"
हेमम

अच्छी पकड़, मैंने इसे बिना जांचे-परखे लिखा था। तदनुसार मेरे उत्तर को अपडेट करें।
जॉन हदद

0

उन लोगों के लिए जो debug=Trueविकल्प को पसंद करते हैं और बवंडर-मल्टीप्रोसेस का उपयोग करते हुए निम्नलिखित त्रुटि उठाई जाएगी:

Traceback (most recent call last):
  File "./main.py", line 54, in <module>
    server.start(0)  # forks one process per cpu
  File "/Users/me/Library/Python/2.7/lib/python/site-packages/tornado/tcpserver.py", line 221, in start
    process.fork_processes(num_processes)
  File "/Users/me/Library/Python/2.7/lib/python/site-packages/tornado/process.py", line 130, in fork_processes
    raise RuntimeError("Cannot run in multiple processes: IOLoop instance "
RuntimeError: Cannot run in multiple processes: IOLoop instance has already been initialized. You cannot call IOLoop.instance() before calling start_processes()

यह इसलिए है क्योंकि debug=Trueलोड IOLoopऔर इसे दो बार लोड नहीं किया जा सकता है।

प्रलेखन के अनुसार

डीबग करना = ट्रू ऑटोरैलोएड के बराबर है = ट्रू, संकलित_टैम्पलेट_केच = गलत, स्थिर_हश_चर्चा = गलत, सर्व_ट्रेसबैक = सत्य।

इसलिए जब debug=Trueटॉरनेडो का उपयोग किया जाता है तो (सुविधा के लिए) एक और ध्वज सेट किया जाता है: autoreload=Trueजो परिवर्तनों के लिए "वॉच" करता है और सर्वर को फिर से लोड करता है।

autoreloadविकल्प एक है कि जब बहु प्रक्रिया का उपयोग कर चालू नहीं किया जा सकता है। तो आपको इसे इस तरह कॉन्फ़िगर करने की आवश्यकता है:

if __name__ == "__main__":
    application = tornado.web.Application([
        (r"/", MainHandler) 
    ], debug=True, autoreload=False)
    application.listen(8888)
    tornado.ioloop.IOLoop.instance().start()
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.