फ्लास्क में 0.11 एक flask
CLI पेश किया गया था। डॉक्स और चैंज स्टेट दोनों की सिफारिश की जाती है।
फ्लास्क 0.11 से शुरू होकर एक डेवलपमेंट सर्वर को चलाने के कई तरीके हैं। सबसे अच्छा एक फ्लास्क कमांड लाइन उपयोगिता है, लेकिन आप
Flask.run()
विधि का उपयोग करना भी जारी रख सकते हैं ।कमांड लाइन
कुप्पी कमांड लाइन स्क्रिप्ट (कमांड लाइन इंटरफेस) दृढ़ता से यह कैसे आवेदन लोड करता है की वजह से विकास के लिए सिफारिश की है क्योंकि यह एक बेहतर पुनः लोड अनुभव प्रदान करता है। मूल उपयोग इस प्रकार है:
$ export FLASK_APP=my_application $ export FLASK_DEBUG=1 $ flask run
चांगेलॉग :
- जोड़ा
flask
औरflask.cli
क्लिक सीएलआई सिस्टम के माध्यम से स्थानीय डिबग सर्वर शुरू करने के लिए मॉड्यूल। यह पुरानीflask.run()
पद्धति से अधिक की सिफारिश की जाती है क्योंकि यह एक अलग डिजाइन के कारण तेजी से और अधिक विश्वसनीय काम करता है और प्रतिस्थापित भी करता हैFlask-Script
।
अब तक मैंने इस "बेहतर पुनः लोड अनुभव" को नोटिस नहीं किया था। मैं कस्टम स्क्रिप्ट पर CLI का उपयोग करने के बिंदु को देखने में विफल रहता हूं।
यदि उपयोग किया जाता है Flask.run
, तो मैं बस एक अजगर फ़ाइल लिखूंगा:
#!/usr/bin/env python3
from my_app import app
if __name__ == '__main__':
app.run(debug=True)
यदि सीएलआई का उपयोग कर रहे हैं, तो किसी को पर्यावरण चर निर्दिष्ट करना होगा। CLI डॉक्स में कहा गया है कि यह activate
virtualenvwrapper की स्क्रिप्ट में एकीकृत किया जा सकता है । व्यक्तिगत रूप से मैं इसे एप्लिकेशन का हिस्सा मानता हूं और सोचता हूं कि यह संस्करण नियंत्रण में होना चाहिए। काश, एक स्क्रिप्ट की जरूरत होती है:
#!/usr/bin/env bash
export FLASK_APP=my_app:app
export FLASK_DEBUG=1
flask run
बेशक यह एक अतिरिक्त बैट स्क्रिप्ट के साथ होगा जैसे ही कोई विंडोज उपयोगकर्ता सहयोग करना शुरू करते हैं।
इसके अलावा पहला विकल्प वास्तविक ऐप को शुरू करने से पहले अजगर में लिखा सेटअप देता है।
यह उदाहरण के लिए अनुमति देता है
- पायथन में कमांड लाइन तर्कों को पार्स करने के लिए
- ऐप को चलाने से पहले लॉग इन करना
उन्हें लगता है कि कस्टम कमांड जोड़ना संभव है। मैं यह देखने में विफल हूं कि यह सरल पायथन स्क्रिप्ट लिखने से बेहतर क्यों है, वैकल्पिक रूप से प्रवेश बिंदुओं के माध्यम से उजागर किया गया है।
उदाहरण लॉगिंग आउटपुट जब पायथन रन स्क्रिप्ट का उपयोग करके कॉन्फ़िगर लकड़हारा का उपयोग कर रहा है:
$ ./run.py
DEBUG 21:51:22 main.py:95) Configured logging
INFO 21:51:22 _internal.py:87) * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
INFO 21:51:22 _internal.py:87) * Restarting with inotify reloader
DEBUG 21:51:22 main.py:95) Configured logging
WARNING 21:51:22 _internal.py:87) * Debugger is active!
INFO 21:51:22 _internal.py:87) * Debugger pin code: 263-225-431
DEBUG 21:51:25 inotify_buffer.py:61) in-event <InotifyEvent: src_path=b'my_app/main.py', wd=272, mask=IN_MODIFY, cookie=0, name=b'main.py'>
DEBUG 21:51:25 inotify_buffer.py:61) in-event <InotifyEvent: src_path=b'my_app/main.py', wd=272, mask=IN_MODIFY, cookie=0, name=b'main.py'>
INFO 21:51:25 _internal.py:87) * Detected change in 'my_app/main.py', reloading
INFO 21:51:26 _internal.py:87) * Restarting with inotify reloader
DEBUG 21:51:26 main.py:95) Configured logging
WARNING 21:51:26 _internal.py:87) * Debugger is active!
INFO 21:51:26 _internal.py:87) * Debugger pin code: 263-225-431
उदाहरण लॉगिंग आउटपुट सीएलआई का उपयोग करके एक कॉन्फ़िगर लकड़हारा का उपयोग करते समय:, ध्यान दें कि रूट लकड़हारा प्रक्रिया में पर्याप्त जल्दी सेटअप नहीं किया जा सकता है।
$ ./run.sh
* Serving Flask app "appsemble.api.main:app"
* Forcing debug mode on
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
* Restarting with inotify reloader
DEBUG 21:51:33 main.py:95) Configured logging
* Debugger is active!
* Debugger pin code: 187-758-498
DEBUG 21:51:34 main.py:95) Configured logging
DEBUG 21:51:37 inotify_buffer.py:61) in-event <InotifyEvent: src_path=b'my_app/main.py', wd=272, mask=IN_MODIFY, cookie=0, name=b'main.py'>
DEBUG 21:51:37 inotify_buffer.py:61) in-event <InotifyEvent: src_path=b'my_app/main.py', wd=272, mask=IN_MODIFY, cookie=0, name=b'main.py'>
* Detected change in 'my_app/main.py', reloading
INFO 21:51:37 _internal.py:87) * Detected change in 'my_app/main.py', reloading
* Restarting with inotify reloader
INFO 21:51:38 _internal.py:87) * Restarting with inotify reloader
* Debugger is active!
* Debugger pin code: 187-758-498
DEBUG 21:51:38 main.py:95) Configured logging
मेरा वास्तविक प्रश्न बस है:
फ्लास्क सीएलआई की सिफारिश क्यों की जाती है Flask.run
?