दिलचस्प पोस्ट
ऑब्ज़र्वबल कलेक्शन और बाइंडिंगलिस्ट में अंतर सीएसएस / जेएस में शब्द लपेटो IOError: ऐसा कोई फ़ाइल या निर्देशिका जो एक फ़ाइल खोलने का प्रयास नहीं कर रहा है छवि UriSource और डेटा बाइंडिंग मुझे थ्रेड-सेफ़ संग्रह संग्रह कहां मिल रहा है? शेल स्क्रिप्ट में किसी अन्य स्ट्रिंग के लिए एक उपस्ट्रिंग बदलें जांचें कि दो अनारॉर्डेड सूचियां समान हैं इकाई फ़्रेमवर्क – क्यों स्पष्ट रूप से इकाई राज्य को संशोधित करने के लिए सेट किया गया? EXECUTE के बाद लेन-देन की गिनती BEGIN और कमेट स्टेटमेंट की एक बेमेल संख्या दर्शाती है। पिछला गिनती = 1, वर्तमान गणना = 0 सी #: हेकर के लिए कड़ी मेहनत कैसे करें / क्रैकर के पास जाओ या लायसेंसिंग की जांच बाईपास करें? () फ़ंक्शन की तलाश? स्रोत नियंत्रण में आप कॉन्फ़िगरेशन फ़ाइलों से कैसे निपटते हैं? विजुअल C ++ जीसीसी के __त्तात्व__ के बराबर ((__ पैक्ड__)) किसी वीडियो के स्रोत को गतिशील रूप से बदलने के लिए क्या मैं जावास्क्रिप्ट का उपयोग कर सकता हूं? मैं डब्ल्यूसीएफ सेवा के लिए लैम्ब्डा अभिव्यक्ति कैसे पास कर सकता हूं?

कोड परिवर्तन पर ऑटो पुनः लोडिंग अजगर फ्लास्क ऐप

मैं अजगर के साथ एक सभ्य वेब एप विकसित करने की जांच कर रहा हूं। चूंकि मुझे कुछ हाई-ऑर्डर संरचनाओं को अपने रास्ते में नहीं जाना है, इसलिए मेरी पसंद हल्के फ्लास्क फ्रेमवर्क पर गिर गई। समय बताएगा कि क्या ये सही विकल्प था।

इसलिए, अब मैंने mod_wsgi के साथ एक अपाचे सर्वर की स्थापना की है, और मेरी परीक्षण साइट ठीक चल रही है। हालांकि, मैं साइट को स्वचालित रूप से py या टेम्पलेट फ़ाइलों में किए गए किसी भी परिवर्तन पर पुनः लोड करके डेवलपमेंट रूटीन को गति देना चाहता हूं। मुझे लगता है कि साइट की .wsgi फ़ाइल में कोई भी परिवर्तन पुनः लोड करने के कारण होता है (यहां तक ​​कि WSGIScript बिना भी अपाचे कॉन्फ़िग फ़ाइल में लोड हो रहा है), लेकिन मुझे इसे मैन्युअल रूप से ठेसाना होगा (यानी, अतिरिक्त लाइनब्रेक सम्मिलित करें)। क्या ऐप की कुछ फ़ाइलों को संपादित करते समय पुनः लोड करने का कोई तरीका है? या, मुझे आईडीई का उपयोग करने की उम्मीद है जो मेरे लिए .wsgi फ़ाइल को रिफ्रेश करती है?

वेब के समाधान से एकत्रित समाधान "कोड परिवर्तन पर ऑटो पुनः लोडिंग अजगर फ्लास्क ऐप"

वर्तमान अनुशंसित तरीका (फ्लास्क> = 0.11) flask कमांड लाइन उपयोगिता के साथ है

http://flask.pocoo.org/docs/0.11/server/

उदाहरण:

 $ export FLASK_APP=main.py $ export FLASK_DEBUG=1 $ python -m flask run 

या एक कमांड में:

 $ FLASK_APP=main.py FLASK_DEBUG=1 python -m flask run 

मैं python -m flask run बजाय python -m flask run पसंद करता हूं क्योंकि पहले भी virtualenv साथ काम करता है

यदि आप डिफॉल्ट ( 5000 ) ऐड --port विकल्प से भिन्न पोर्ट चाहते हैं

उदाहरण:

 $ python -m flask run --port 8080 

अधिक विकल्प उपलब्ध हैं:

 $ python -m flask run --help 

यदि आप टेस्ट / देव परिवेश के बारे में बात कर रहे हैं, तो बस डीबग विकल्प का उपयोग करें जब कोई कोड परिवर्तन होता है तो यह फ्लास्क एप को स्वत: पुनः लोड करेगा।

 app.run(debug=True) 

या, शेल से:

 $ export FLASK_DEBUG=1 $ flask run 

http://flask.pocoo.org/docs/quickstart/#debug-mode

परीक्षण / विकास वातावरण में

Werkzeug डिबगर के पास पहले से ही एक 'ऑटो रीलोड' फ़ंक्शन उपलब्ध है, जिसे निम्न में से एक करके सक्षम किया जा सकता है:

 app.run(debug=True) 

या

 app.debug = True 

यदि आप की आवश्यकता हो तो आप अपने सभी सेटअप को प्रबंधित करने के लिए एक अलग विन्यास फाइल का उपयोग भी कर सकते हैं उदाहरण के लिए मैं 'settings.py' का प्रयोग 'DEBUG = True' विकल्प के साथ करता हूँ इस फाइल को आयात करना भी आसान है;

 app.config.from_object('application.settings') 

हालांकि यह उत्पादन वातावरण के लिए उपयुक्त नहीं है।

उत्पादन वातावरण

निजी तौर पर मैंने कुछ कार्यक्षमता के कारणों के लिए अपाचे + मोड_वास्फी पर एनजीएन + यूडब्ल्यूएसजीआई चुना है, लेकिन कॉन्फ़िगरेशन विकल्प भी। टच-रीलोड विकल्प आपको एक फ़ाइल / फ़ोल्डर निर्दिष्ट करने की अनुमति देता है जिससे यूडब्ल्यूएसजीआई एप्लिकेशन को अपने नए परिनियोजित फ्लास्क ऐप को पुनः लोड किया जा सके।

उदाहरण के लिए, आपकी अपडेट स्क्रिप्ट आपके नवीनतम परिवर्तनों को नीचे खींचती है और 'reload_me.txt' फ़ाइल को छूती है। आपकी यूडब्ल्यूएसजीआई इनi लिपि (जो सुपरवाइसर द्वारा रखी गई है – जाहिर है) इसमें कहीं यह रेखा है:

 touch-reload = '/opt/virtual_environments/application/reload_me.txt' 

आशा है कि ये आपकी मदद करेगा!

यदि आप पायथन ऑटो रीलोड विकल्प पर uwsgi का उपयोग करते हुए चल रहे हैं:

 uwsgi --py-autoreload 1 

उदाहरण uwsgi-dev-example.ini:

 [uwsgi] socket = 127.0.0.1:5000 master = true virtualenv = /Users/xxxx/.virtualenvs/sites_env chdir = /Users/xxx/site_root module = site_module:register_debug_server() callable = app uid = myuser chmod-socket = 660 log-date = true workers = 1 py-autoreload = 1 

site_root / __ init__.py

 def register_debug_server(): from werkzeug.debug import DebuggedApplication app = Flask(__name__) app.debug = True app = DebuggedApplication(app, evalex=True) return app 

तो भागो:

 uwsgi --ini uwsgi-dev-example.ini 

नोट: यह उदाहरण भी डीबगर को सक्षम करता है

मैं इस रूट को अपने एनजीएन सेटअप के साथ उत्पादन की नकल के लिए जितना करीब संभव बना दिया। Nginx के पीछे वेब सर्वर में बनाया गया बस फ्लास्क ऐप को चलाने के साथ ही इसका परिणाम खराब गेटवे त्रुटि में होगा।