ट्यूटोरियल #5: फ्लास्क डिजाइन पैटर्न और वेब अनुप्रयोगों के लिए सर्वोत्तम अभ्यास
ट्यूटोरियल #6: उदाहरण के साथ फ्लास्क एपीआई ट्यूटोरियल
यह परिचयात्मक पायथन फ्लास्क ट्यूटोरियल बताता है कि फ्लास्क क्या है, पायथन की स्थापना, वर्चुअनव, फ्लास्क हैलो वर्ल्ड उदाहरण कोड उदाहरण, डिबगिंग और परीक्षण पर एक खंड के साथ:
वेबसाइट विकास है एक कौशल से अधिक एक कला। इसे वास्तविक सफलता के लिए जो आवश्यक है उसे बनाने के लिए दृढ़ता, साहस और समर्पण के साथ-साथ धैर्य और परिश्रम की आवश्यकता होती है। इन दिनों, शिक्षार्थियों के लिए जितनी जल्दी हो सके गति प्राप्त करना आवश्यक है।
हमने छात्रों को गति प्राप्त करने और पायथन 3 का उपयोग करके सरल और साथ ही जटिल वेब प्रोग्रामिंग को लागू करने के लिए यह पायथन फ्लास्क ट्यूटोरियल बनाया है। .
यह पायथन फ्लास्क ट्यूटोरियल एक फ्लास्क शुरुआती ट्यूटोरियल की तरह है, जो कि कवर करेगा पायथन, वर्चुअनव और अन्य आवश्यक पैकेजों की स्थापना। ट्यूटोरियल की इस श्रृंखला में, हम अन्य आवश्यक फ्लास्क प्लगइन्स के साथ फ्लास्क भी स्थापित करेंगे। हमने कोड डिबगिंग, परीक्षण और गिट क्रियाओं का उपयोग करके निरंतर एकीकरण पर एक अनुभाग भी शामिल किया है।
इस फ्लास्क श्रृंखला में ट्यूटोरियल की सूची
ट्यूटोरियल #1: पायथन फ्लास्क ट्यूटोरियल - नौसिखियों के लिए फ्लास्क का परिचय
ट्यूटोरियल #2: फ्लास्क टेम्प्लेट, फॉर्म, व्यू, और उदाहरणों के साथ रीडायरेक्ट करें
ट्यूटोरियल #3: फ्लास्क डेटाबेस हैंडलिंग - डेटाबेस के साथ फ्लास्क का उपयोग कैसे करें
ट्यूटोरियल #4: फ्लास्क ऐप और ब्लूप्रिंट के साथ फ्लास्क प्रोजेक्ट लेआउट;पूर्वापेक्षाओं में उल्लेखित चरण।
चरण 1: Python स्थापित करें
जांचें कि आपने Python 3 स्थापित किया है या नहीं। यदि नहीं, तो यहां से Python 3 डाउनलोड करें और इसे अपने ऑपरेटिंग सिस्टम के अनुसार इंस्टॉल करें। कमांड के नीचे।
python3 -m venv venv
Python वर्चुअल वातावरण को सक्रिय करने के लिए नीचे दिए गए कमांड का उपयोग करें।
source venv/bin/activate
हमने नीचे वर्चुअल वातावरण की सक्रियता और निष्क्रियता का एक उदाहरण दिया है।
इस ट्यूटोरियल के बाद के सभी कमांड सक्रिय वर्चुअल वातावरण में चलने चाहिए। व्हील पैकेज स्थापित करें ताकि हम आभासी वातावरण के अंदर पहियों का निर्माण कर सकें।
pip install wheel
चरण 3: फ्लास्क डाउनलोड करें और इन्सॉल करें
हमें फ्लास्क डाउनलोड चरणों को पूरा करने की आवश्यकता है और नीचे दिए गए चरणों का उपयोग करके फ्लास्क स्थापित करें।
अब फ्लास्क स्थापित करें।
pip install flask
हममें से कुछ नवीनतम स्रोत कोड परिवर्तनों के साथ काम करना पसंद करते हैं। फ्लास्क के स्रोतों में नवीनतम परिवर्तनों के साथ स्थापित करने के लिए हम नीचे दिए गए आदेश का उपयोग कर सकते हैं।
एक अस्थायी निर्देशिका बनाएं।
mkdir tmp
अब जीथब रिपॉजिटरी से फ्लास्क स्थापित करें। नीचे दी गई कमांड के काम करने के लिए आपको इंटरनेट से जुड़े रहने की जरूरत है।
pip3 install -e [email protected]:pallets/flask.git#egg=flask
सफल स्थापना की जांच करने के लिए कंसोल आउटपुट देखें। अब जांचें कि क्या हम फ्लास्क कमांड का उपयोग कर सकते हैं।
flask --help
फ्लास्क की अनुपस्थिति के बारे में आपको कुछ अपवाद दिखाई दे सकते हैंआवेदन पत्र। हालाँकि, उनकी उपेक्षा करें क्योंकि हमने कोई फ्लास्क ऐप नहीं बनाया है। हमारा ऐप फ्लास्क का एक उदाहरण है, जो कि Werkzeug वेब फ्रेमवर्क और जिन्जा टेम्प्लेटिंग इंजन पर एक आवरण है।
Werkzeug
Werkzeug एक WSGI टूलकिट है। डब्लूएसजीआई केवल वेब सर्वर के लिए वेब अनुरोधों को पायथन प्रोग्रामिंग भाषा में लिखे वेब अनुप्रयोगों के लिए अग्रेषित करने के लिए एक कॉलिंग सम्मेलन है।
जिंजा
टेम्पलेटिंग एक है वेब डेवलपर्स के आवश्यक कौशल। जिंजा पायथन के लिए एक पूर्ण विशेषताओं वाला और लोकप्रिय टेंपलेटिंग इंजन है। यह काफी अभिव्यंजक भाषा है और टेम्पलेट लेखकों को उपकरणों का एक मजबूत सेट प्रदान करती है।
चरण 4: MongoDB स्थापित करें
MongoDB स्थापित करने के लिए नीचे दिए गए चरणों का पालन करें। हमने इसे डेबियन आधारित लिनक्स में स्थापित करने के चरणों की रूपरेखा दी है। यदि आप किसी अन्य ऑपरेटिंग सिस्टम का उपयोग कर रहे हैं, तो लिंक तक पहुंचें और इच्छित ऑपरेटिंग सिस्टम के अनुसार इंस्टॉल करें।
MongoDB सार्वजनिक GPG कुंजी आयात करने के लिए gnupg स्थापित करें।
sudo apt-get install gnupg
अब नीचे दिए गए आदेश का उपयोग करके कुंजी आयात करें।
wget -qO - //www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -
अपने लिनक्स वितरण के अनुसार स्रोत सूची फ़ाइल बनाएं। हमने डेबियन के अनुसार स्रोतों की सूची जोड़ दी है।
echo "deb //repo.mongodb.org/apt/debian buster/mongodb-org/4.2 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.2.list
अपडेट कमांड चलाएँ
sudo apt-get update
अब नीचे दिए गए कमांड का उपयोग करके MongoDB स्थापित करें।
sudo apt-get install -y mongodb-org
स्थापना सफल होने के बाद, नीचे दिए गए आदेश का उपयोग करके MongoDB प्रारंभ करें।
sudo systemctl start mongod
कमांड का उपयोग करके MongoDB की स्थिति जांचेंनीचे।
sudo systemctl status mongod
अब सुनिश्चित करें कि मोंगॉड स्वचालित रूप से नीचे दिखाए गए कमांड को जारी करके सिस्टम रिबूट पर शुरू होता है।
sudo systemctl enable mongod
अब जांचें कि क्या आप कर सकते हैं Mongo क्लाइंट का उपयोग करके MongoDB सर्वर से कनेक्ट करें।
mongo
mongo शेल में, मदद का उपयोग करने का प्रयास करें और dbs कमांड दिखाएं।
एक फ्लास्क ऐप बनाएं
फ्लास्क-ऐपबिल्डर और मोंगोइंजिन इंस्टॉल करने के लिए नीचे दिए गए कमांड का उपयोग करें।
pip install flask-appbuilder pip install mongoengine pip install flask_mongoengine
नीचे कोड स्निपेट में टिप्पणियों के रूप में दिखाए गए मानों के साथ एक स्केलेटन ऐप बनाएं।
flask fab create-app # Give the following values in the command line questionnaire # Application Name: flaskTutorialApp # EngineType : MongoEngine
हम नीचे दिए गए आउटपुट के समान आउटपुट देखेंगे।
Your new app name: exampleApp Your engine type, SQLAlchemy or MongoEngine (SQLAlchemy, MongoEngine) [SQLAlchemy]: MongoEngine Downloaded the skeleton app, good coding!
प्रोजेक्ट और ऐप के लेआउट पर एक नजर डालें। हमने ट्री कमांड का आउटपुट नीचे दिखाया है।
फ्लास्क कॉन्फिग फाइल पर एक नजर डालते हैं। यह अंतिम आदेश के परिणाम के रूप में उत्पन्न एक डिफ़ॉल्ट कॉन्फ़िगरेशन है। अनकमेंट साइबोर्ग थीम, जैसा कि नीचे दिखाया गया है।
# Theme configuration for Cybord=g # these themes are located on static/appbuilder/css/themes # We can create our own and easily use them by placing them on the same dir structure to override #APP_THEME = "bootstrap-theme.css" # default bootstrap #APP_THEME = "cerulean.css" # cerulean #APP_THEME = "amelia.css" # amelia theme #APP_THEME = "cosmo.css" # cosmo theme APP_THEME = "cyborg.css" # cyborg theme #APP_THEME = "flatly.css" # flatly theme
कंकाल ऐप चलाने के लिए, टर्मिनल पर नीचे दी गई कमांड का उपयोग करें।
flask run
फ्लास्क हैलो वर्ल्ड
FlaskTutorialApp में अपना पहला प्रोग्राम बनाने के लिए, ऐप डायरेक्टरी के तहत view.py फ़ाइल खोलें और निम्न कोड जोड़ें। फ़ाइल में दिए गए आयात विवरणों को देखें। यदि ये कथन पहले से मौजूद नहीं हैं तो इन्हें जोड़ें।
from flask_appbuilder import BaseView, expose from app import appbuilder class HelloWorld(BaseView): """ This first view of the tutorial """ route_base = "/hello" @expose("/") def hello(self): return "Hello, World! from Software Testing Help" # at the end of the file appbuilder.add_view_no_menu(HelloWorld())
उपरोक्त स्रोत कोड जोड़ने के बाद फ़ाइल को सहेजें। प्रोजेक्ट की रूट डायरेक्टरी पर जाएं और फ्लास्क के डेवलपमेंट सर्वर को चलाने के लिए नीचे दिए गए कमांड का उपयोग करें।ब्राउज़र।
डिबगिंग
वर्तमान में, विकास सर्वर डीबग मोड में नहीं चल रहा है। डिबगिंग मोड के बिना, फ्लास्क एप्लिकेशन के स्रोत कोड में त्रुटियों को ढूंढना मुश्किल है।
फ्लास्क में डीबग मोड के परिणाम निम्न हैं:
- डिबग मोड स्वचालित रीलोडर को सक्रिय करता है। इसका अर्थ है कि एप्लिकेशन के स्रोत कोड में परिवर्तन करने के बाद हमें विकास सर्वर को पुनरारंभ करने की आवश्यकता नहीं है।
- डीबग मोड पायथन डीबगर को सक्रिय करता है। हम अपवाद के दौरान चर के मूल्यों का निरीक्षण कर सकते हैं।
- डीबग मोड फ्लास्क एप्लिकेशन डीबगिंग को सक्षम करता है। हम डिबगिंग सत्रों में विभिन्न चरों के मूल्यों की जांच कर सकते हैं।
विकास सर्वर को रोकें यदि यह पहले से चल रहा है। ऐसा करने के लिए आप CTRL + C या कीबोर्ड इंटरप्ट का उपयोग कर सकते हैं।
डिबग मोड को सक्षम करने और विकास सर्वर को अस्थायी रूप से चलाने के लिए निम्न कोड का उपयोग करें।
FLASK_ENV=development flask run
खोजें डीबगर पिन के लिए कंसोल और इसे नोट कर लें।
अब कोड स्निपेट की निम्नलिखित पंक्तियों के साथ ऊपर लिखे हैलोवर्ल्ड दृश्य को बदलते हैं। ध्यान दें कि हमने एक कस्टम अपवाद पेश किया है।
@expose("/") def hello(self): raise Exception("A custom exception to learn DEBUG Mode") return "Hello, World! from Software Testing Help"
//localhost:5000/hello/ पर नेविगेट करें, और आप देखेंगे कि एप्लिकेशन ने एक अपवाद उठाया है। जैसा कि नीचे दिखाया गया है, ब्राउज़र स्टैक ट्रेस प्रदर्शित करता है।
![](/wp-content/uploads/guides/iae5sr2a76-3.png)
इसके अलावा, उस कंसोल को देखें जहां विकास सर्वर चल रहा है। आप पाएंगे कि इस बार, दview.py में परिवर्तनों का स्वचालित रूप से पता लगाया जाता है, और डिबग सर्वर अपने आप पुनरारंभ हो जाता है। अब हमें इसे मैन्युअल रूप से पुनः प्रारंभ करने की आवश्यकता नहीं है।
कंसोल में लाइनें होंगी, जैसा कि नीचे दिखाया गया है। हमें डीबग पिन को बाद के लिए नोट करना होगा।
* Detected change in '/work/sth/flaskTutorialApp/app/views.py', reloading 2020-06-02 14:59:49,354:INFO:werkzeug: * Detected change in '/work/sth/flaskTutorialApp/app/views.py', reloading * Restarting with stat 2020-06-02 14:59:49,592:INFO:werkzeug: * Restarting with stat * Debugger is active! * Debugger PIN: 150-849-897
अब ब्राउज़र में स्टैक ट्रेस की जांच करें और अंतिम पंक्ति पर जाएं। इसके दृश्य को विस्तृत करने के लिए उस पर क्लिक करें और शेल को इंटरएक्टिव मोड में खोलने के लिए सीएलआई आइकन पर क्लिक करें। डिबग पिन दें और ओके पर क्लिक करें।
![](/wp-content/uploads/guides/iae5sr2a76-5.png)
डीबग पिन देने के बाद एक बार जब हम आगे बढ़ जाते हैं, तो हम इंटरैक्टिव शेल तक पहुंच सकते हैं।
हम ब्राउज़र के भीतर से शेल तक पहुंच सकते हैं और अपवाद के कारण का पता लगाने और त्रुटि को बेहतर तरीके से संभालने के लिए चर के मानों का निरीक्षण कर सकते हैं। कृपया नीचे दी गई छवि में दिखाए गए उदाहरणों में से एक को देखें।
![](/wp-content/uploads/guides/iae5sr2a76-6.png)
अब view.py में कोड बदलें, जैसा कि नीचे दिखाया गया है। ध्यान दें कि हमने उस पंक्ति पर टिप्पणी की है जिसमें अपवाद उठाया गया था।
@expose("/") def hello(self): # raise Exception("A custom exception to learn DEBUG Mode") return "Hello, World! from Software Testing Help"
फ्लास्क एप्लिकेशन का परीक्षण
अब हम फ्लास्क एप्लिकेशन के लिए अपना पहला परीक्षण लिखते हैं जिसे हम विकसित कर रहे हैं। सबसे पहले, PyTest को स्थापित करें। PyTest एक टेस्टिंग फ्रेमवर्क है। यह हमें बेहतर कोड लिखने में मदद करता है।
इसके अलावा, सिर्फ इसलिए कि हम अपने अनुप्रयोगों को विकसित करते समय इकाई परीक्षण लिख सकते हैं, टीडीडी दृष्टिकोण का पालन करना संभव है। TDD का मतलब टेस्ट-संचालित विकास है। हमारे बाद के ट्यूटोरियल्स मेंइस श्रृंखला में, हम हमेशा पहले परीक्षण लिखेंगे और अपने विचार या मॉडल विकसित करेंगे। test_hello.py नाम की एक फाइल बनाएं। आइए अपने दृष्टिकोण का परीक्षण करने के लिए अपना पहला यूनिट परीक्षण लिखें।
निम्नलिखित कोड स्निपेट को कॉपी करें और इसे test_hello.py में पेस्ट करें।
#!/usr/bin/env python from app import appbuilder import pytest @pytest.fixture def client(): """ A pytest fixture for test client """ appbuilder.app.config["TESTING"] = True with appbuilder.app.test_client() as client: yield client def test_hello(client): """ A test method to test view hello """ resp = client.get("/hello", follow_redirects=True) assert 200 == resp.status_code
चलाने के लिए नीचे दिए गए पाइस्टेस्ट कमांड का उपयोग करें जाँच। PyTest स्वचालित रूप से परीक्षण एकत्र करता है और मानक आउटपुट पर परिणाम प्रदर्शित करता है। अपने प्रोजेक्ट के लिए नीचे दिए गए चरणों का पालन करें।
चरण 1: GitHub पर रिपॉजिटरी पेज पर नेविगेट करें। गिट एक्शन पर क्लिक करें। चरण 3: Python पैकेज वर्कफ़्लो सेटअप करें।
![](/wp-content/uploads/guides/iae5sr2a76-10.png)
चरण 4: python-package.yml वर्कफ़्लो कॉन्फ़िगरेशन खुलने के बाद, दिए गए yaml अतिरिक्त के आधार पर इसे अपडेट करें टैग मान।
name: flaskTutorialApp jobs: build: runs-on: ubuntu-latest strategy: matrix: python-version: [3.7, 3.8] mongodb-version: [4.2] steps: - name: Start MongoDB uses: supercharge/[email protected] with: mongodb-version: ${{ matrix.mongodb-version }} # other values
हम नवीनतम उबंटू लिनक्स वितरण पर अपने फ्लास्क एप्लिकेशन का परीक्षण करना चाहते हैं। OS के अलावा, हम अपने परीक्षण केवल Python 3.7 और Python 3.8 का उपयोग करके चलाना चाहते हैं।
चरण 5: python-package.yml को अद्यतन मानों के साथ प्रतिबद्ध करें।
![](/wp-content/uploads/guides/iae5sr2a76-11.png)
चरण 6: पिछले पृष्ठ में दी गई प्रतिबद्धता हमें GitActions पर ले जाती हैjobs.
![](/wp-content/uploads/guides/iae5sr2a76-12.png)
चरण 7: [वैकल्पिक]
नमूना ट्यूटोरियल ऐप के लिए Github Jobs पृष्ठ पर, हम एक बैज बना सकते हैं और उसे रख सकते हैं यह बिल्ड स्थिति प्रदर्शित करने के लिए README.md फ़ाइल पर है।
अब, जब भी मास्टर शाखा में परिवर्तन किए जाते हैं, तो Git वर्कफ़्लो, जैसा कि python-package.yml में लिखा गया है, का पालन किया जाएगा और Git क्रियाओं पर चलाया जाएगा। .
निष्कर्ष
इस ट्यूटोरियल में, हमने फ्लास्क - एक पायथन-आधारित वेब डेवलपमेंट फ्रेमवर्क का उपयोग करके विकसित वेब एप्लिकेशन के लिए सीआई/सीडी वर्कफ़्लो स्थापित करने के लिए पूर्वापेक्षाओं से लेकर सभी बुनियादी अवधारणाओं को शामिल किया है।
इस ट्यूटोरियल में सभी आवश्यक चरण शामिल हैं जैसे कि पायथन इंस्टॉल करना, डाउनलोड करना & फ्लास्क स्थापित करना, फ्लास्क-एपबिल्डर के साथ काम करना, पायटेस्ट के साथ परीक्षण करना आदि, पायथन का उपयोग करके वेब विकास के साथ आरंभ करने के लिए। वेब डेवलपमेंट कम्युनिटी आमतौर पर फ्लास्क की तुलना एक अन्य लोकप्रिय पायथन वेब डेवलपमेंट फ्रेमवर्क से करती है जिसे Django कहा जाता है।
हम इन अंतरों की व्याख्या करेंगे और इस श्रृंखला के एक ट्यूटोरियल में इन फ्रेमवर्क की तुलना भी करेंगे।