ट्युटोरियल #5: फ्लास्क डिझाइन पॅटर्न आणि वेब अॅप्लिकेशन्ससाठी सर्वोत्तम पद्धती
ट्यूटोरियल #6: फ्लास्क API ट्यूटोरियल उदाहरणासह
हे प्रास्ताविक पायथन फ्लास्क ट्यूटोरियल फ्लास्क काय आहे हे स्पष्ट करते, पायथनची स्थापना, व्हर्चुअलेनव्ह, फ्लास्क हॅलो वर्ल्ड उदाहरणे कोड उदाहरणे, डीबगिंग आणि चाचणी या विभागासह:
वेबसाइट विकास आहे कौशल्यापेक्षा कला अधिक. खऱ्या अर्थाने यशस्वी होण्यासाठी जे आवश्यक आहे ते तयार करण्यासाठी चिकाटी, धैर्य आणि समर्पण यासह संयम आणि परिश्रम आवश्यक आहेत. आजकाल, शिकणाऱ्यांसाठी शक्य तितक्या लवकर गती मिळणे अत्यावश्यक आहे.
विद्यार्थ्यांना पायथन 3 वापरून गती मिळावी आणि सोपे तसेच जटिल वेब प्रोग्रामिंग लागू करण्यासाठी आम्ही हे पायथन फ्लास्क ट्यूटोरियल तयार केले आहे. .
हे पायथन फ्लास्क ट्यूटोरियल फ्लास्क बिगिनर ट्यूटोरियलसारखे आहे, जे कव्हर करेल Python, Virtualenv, आणि इतर आवश्यक पॅकेजेसची स्थापना. ट्यूटोरियलच्या या मालिकेत, आम्ही इतर आवश्यक फ्लास्क प्लगइन्ससह फ्लास्क देखील स्थापित करू. आम्ही कोड डीबगिंग, चाचणी आणि Git क्रिया वापरून सतत एकत्रीकरण यावरील विभाग देखील समाविष्ट केला आहे.
या फ्लास्क मालिकेतील ट्यूटोरियलची यादी
ट्यूटोरियल #1: पायथन फ्लास्क ट्यूटोरियल – नवशिक्यांसाठी फ्लास्कचा परिचय
ट्यूटोरियल #2: फ्लास्क टेम्पलेट, फॉर्म, पहा आणि उदाहरणांसह पुनर्निर्देशित करा
ट्यूटोरियल #3: फ्लास्क डेटाबेस हाताळणी – डेटाबेससह फ्लास्क कसे वापरावे
ट्युटोरियल # 4: फ्लास्क अॅप आणि फ्लास्क प्रोजेक्ट लेआउट ब्लूप्रिंटसह &पूर्वतयारीत चरणांचा उल्लेख केला आहे.
चरण 1: पायथन स्थापित करा
तुम्ही पायथन 3 स्थापित केले आहे की नाही ते तपासा. नसल्यास, येथून पायथन 3 डाउनलोड करा आणि तुमच्या ऑपरेटिंग सिस्टमनुसार ते स्थापित करा.
चरण 2: पायथन आभासी वातावरण तयार करा
वापरून एक आभासी वातावरण तयार करा खालील आदेश.
python3 -m venv venv
पायथन आभासी वातावरण सक्रिय करण्यासाठी खालील आदेश वापरा.
source venv/bin/activate
आम्ही खाली आभासी वातावरण सक्रिय करणे आणि निष्क्रिय करण्याचे उदाहरण दिले आहे.
या ट्युटोरियलमधील नंतरच्या सर्व कमांड सक्रिय आभासी वातावरणात चालवल्या पाहिजेत. व्हील पॅकेज स्थापित करा जेणेकरुन आम्ही आभासी वातावरणात चाके तयार करू शकू.
pip install wheel
चरण 3: फ्लास्क डाउनलोड आणि स्थापित करा
आम्हाला फ्लास्क डाउनलोड चरण पूर्ण करणे आवश्यक आहे आणि खाली नमूद केलेल्या चरणांचा वापर करून फ्लास्क स्थापित करा.
आता फ्लास्क स्थापित करा.
pip install flask
आमच्यापैकी काहींना नवीनतम स्त्रोत कोड बदलांसह कार्य करायला आवडते. फ्लास्कच्या स्त्रोतांमध्ये नवीनतम बदलांसह स्थापित करण्यासाठी आम्ही खाली दिलेल्या कमांडचा वापर करू शकतो.
तात्पुरती निर्देशिका बनवा.
mkdir tmp
आता Github रेपॉजिटरीमधून फ्लास्क स्थापित करा. खालील आदेश कार्य करण्यासाठी तुम्हाला इंटरनेटशी जोडलेले राहावे लागेल.
pip3 install -e [email protected]:pallets/flask.git#egg=flask
यशस्वी स्थापना तपासण्यासाठी कन्सोल आउटपुट पहा. आता आम्ही फ्लास्क कमांडमध्ये प्रवेश करू शकतो का ते तपासा.
flask --help
तुम्हाला फ्लास्कच्या अनुपस्थितीबद्दल काही अपवाद दिसतील.अर्ज तथापि, आम्ही कोणतेही फ्लास्क अॅप तयार केलेले नसल्यामुळे त्याकडे दुर्लक्ष करा. आमचे अॅप फ्लास्कचे उदाहरण आहे, जे वेर्कझेग वेब फ्रेमवर्क आणि जिन्जा टेम्प्लेटिंग इंजिनवर रॅपर आहे.
वेर्कझेग
वेर्कझेग हे डब्ल्यूएसजीआय टूलकिट आहे. Python प्रोग्रामिंग भाषेत लिहिलेल्या वेब ऍप्लिकेशन्सवर वेब विनंत्या फॉरवर्ड करण्यासाठी वेब सर्व्हरसाठी WSGI हे फक्त कॉलिंग कन्व्हेन्शन आहे.
जिंजा
टेम्प्लेटिंग एक आहे वेब डेव्हलपरची आवश्यक कौशल्ये. जिंजा हे पायथनसाठी पूर्णपणे वैशिष्ट्यीकृत आणि लोकप्रिय टेम्प्लेटिंग इंजिन आहे. ही एक अर्थपूर्ण भाषा आहे आणि टेम्पलेट लेखकांना साधनांचा एक मजबूत संच प्रदान करते.
चरण 4: मोंगोडीबी स्थापित करा
मोंगोडीबी स्थापित करण्यासाठी खाली नमूद केलेल्या चरणांचे अनुसरण करा. आम्ही डेबियन आधारित लिनक्समध्ये ते स्थापित करण्याच्या चरणांची रूपरेषा दिली आहे. तुम्ही दुसरी ऑपरेटिंग सिस्टीम वापरत असल्यास, लिंकवर प्रवेश करा आणि इच्छित ऑपरेटिंग सिस्टमनुसार इंस्टॉल करा.
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
आता खालील कमांड वापरून मोंगोडीबी स्थापित करा.
sudo apt-get install -y mongodb-org
एकदा इंस्टॉलेशन यशस्वी झाले की, खालील कमांड वापरून मोंगोडीबी सुरू करा.
sudo systemctl start mongod
कमांड वापरून मोंगोडीबीची स्थिती तपासाखाली.
sudo systemctl status mongod
आता खाली दर्शविलेली कमांड जारी करून सिस्टम रीबूटवर मंगोड स्वयंचलितपणे सुरू होईल याची खात्री करा.
sudo systemctl enable mongod
आता तुम्ही हे करू शकता का ते तपासा. मोंगो क्लायंट वापरून मोंगोडीबी सर्व्हरशी कनेक्ट करा.
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!
प्रोजेक्ट आणि अॅपचा लेआउट पहा. आम्ही खाली ट्री कमांडचे आउटपुट दाखवले आहे.
चला फ्लास्क कॉन्फिगरेशन फाइल पाहू. शेवटच्या कमांडचा परिणाम म्हणून व्युत्पन्न केलेली ही डीफॉल्ट कॉन्फिगरेशन आहे. खाली दर्शविल्याप्रमाणे Cyborg थीम अनकमेंट करा.
# 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 मध्ये तुमचा पहिला प्रोग्रॅम तयार करण्यासाठी, app डिरेक्ट्री अंतर्गत views.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())
वरील स्त्रोत कोड जोडल्यानंतर फाइल सेव्ह करा. प्रोजेक्टच्या रूट डिरेक्टरीवर जा आणि फ्लास्कचा डेव्हलपमेंट सर्व्हर चालवण्यासाठी खालील कमांड वापरा.
flask run
आता आउटपुट पाहण्यासाठी //localhost:5000/hello/ वर नेव्हिगेट करा.ब्राउझर.
डीबगिंग
सध्या, डेव्हलपमेंट सर्व्हर डीबग मोडमध्ये चालत नाही. डीबगिंग मोडशिवाय, फ्लास्क ऍप्लिकेशनच्या स्त्रोत कोडमधील त्रुटी शोधणे कठीण आहे.
फ्लास्कमधील डीबग मोडचे परिणाम खालीलप्रमाणे आहेत:
- डीबग मोड स्वयंचलित रीलोडर सक्रिय करतो. याचा अर्थ आम्ही ऍप्लिकेशनच्या सोर्स कोडमध्ये बदल केल्यानंतर आम्हाला डेव्हलपमेंट सर्व्हर रीस्टार्ट करण्याची गरज नाही.
- डीबग मोड पायथन डीबगर सक्रिय करतो. आम्ही अपवादादरम्यान व्हेरिएबल्सच्या मूल्यांची तपासणी करू शकतो.
- डीबग मोड फ्लास्क अॅप्लिकेशन डीबगिंग सक्षम करतो. आम्ही डीबगिंग सत्रांमध्ये विविध व्हेरिएबल्सची मूल्ये तपासू शकतो.
डेव्हलपमेंट सर्व्हर आधीच चालू असल्यास ते थांबवा. ते करण्यासाठी तुम्ही CTRL + C किंवा कीबोर्ड इंटरप्ट वापरू शकता.
डीबग मोड सक्षम करण्यासाठी खालील कोड वापरा आणि विकास सर्व्हर तात्पुरते चालवा.
FLASK_ENV=development flask run
शोधा डीबगर पिनसाठी कन्सोल आणि त्याची नोंद घ्या.
आता कोड स्निपेटच्या खालील ओळींसह वरील लिहिलेले HelloWorld दृश्य बदलू. लक्षात घ्या की आम्ही एक सानुकूल अपवाद सादर केला आहे.
@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)
याशिवाय, डेव्हलपमेंट सर्व्हर कुठे चालत आहे ते कन्सोल पहा. यावेळी तुम्हाला आढळेल की, दviews.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
आता ब्राउझरमध्ये स्टॅक ट्रेस तपासा आणि शेवटच्या ओळीवर जा. त्याचे दृश्य विस्तृत करण्यासाठी त्यावर क्लिक करा आणि परस्परसंवादी मोडमध्ये शेल उघडण्यासाठी CLI चिन्हावर क्लिक करा.
![](/wp-content/uploads/guides/iae5sr2a76-4.png)
एकदा तुम्ही ते उघडल्यानंतर, तुम्हाला दिसेल की ब्राउझर डीबग पिनसाठी प्रॉम्प्ट दर्शवेल. डीबग पिन द्या आणि ओके वर क्लिक करा.
![](/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 पद्धतीचे अनुसरण करणे शक्य आहे. TDD चा अर्थ चाचणी-चालित विकास आहे. च्या आमच्या पुढील ट्यूटोरियलमध्येया मालिकेत, आम्ही नेहमी प्रथम चाचण्या लिहू आणि आमची दृश्ये किंवा मॉडेल विकसित करू.
PyTest स्थापित करा
pip install pytest
आता अॅप डिरेक्टरीच्या आत टेस्ट नावाची निर्देशिका तयार करा आणि त्यात 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 कमांड वापरा चाचण्या PyTest आपोआप चाचणी गोळा करते आणि मानक आउटपुटवर परिणाम प्रदर्शित करते.
![](/wp-content/uploads/guides/iae5sr2a76-7.png)
एक GitHub वर्कफ्लो तयार करा
आम्ही आमच्या नमुना अनुप्रयोगासाठी CI/CD वर्कफ्लो तयार करण्यासाठी Git क्रिया वापरतो. तुमच्या प्रोजेक्टसाठी खाली नमूद केलेल्या पायऱ्या फॉलो करा.
स्टेप 1: GitHub वरील रेपॉजिटरी पेजवर नेव्हिगेट करा. Git क्रियांवर क्लिक करा.
![](/wp-content/uploads/guides/iae5sr2a76-8.png)
चरण 2: पृष्ठावर खाली स्क्रोल करा आणि पायथन पॅकेजसाठी विद्यमान वर्कफ्लो टेम्पलेट शोधा.
![](/wp-content/uploads/guides/iae5sr2a76-9.png)
चरण 3: पायथन पॅकेज वर्कफ्लो सेटअप करा.
![](/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 वर घेऊन जातेजॉब्स.
![](/wp-content/uploads/guides/iae5sr2a76-12.png)
स्टेप 7: [पर्यायी]
नमुना ट्युटोरियल अॅपसाठी गिथब जॉब्स पेजवर, आम्ही बॅज आणि ठिकाण तयार करू शकतो बिल्ड स्थिती प्रदर्शित करण्यासाठी ते README.md फाइलवर.
आता, जेव्हा जेव्हा मास्टर शाखेत बदल केले जातात, तेव्हा python-package.yml मध्ये लिहिलेल्या Git Workflow चे अनुसरण केले जाईल आणि Git Actions वर चालवले जाईल. .
निष्कर्ष
या ट्युटोरियलमध्ये, आम्ही फ्लास्क - पायथन-आधारित वेब डेव्हलपमेंट फ्रेमवर्क वापरून विकसित केलेल्या वेब ऍप्लिकेशनसाठी CI/CD वर्कफ्लो सेट अप करण्यापर्यंतच्या सर्व मूलभूत संकल्पना समाविष्ट केल्या आहेत.
या ट्यूटोरियलमध्ये पायथन स्थापित करणे, डाउनलोड करणे आणि डाउनलोड करणे यासारख्या सर्व आवश्यक चरणांचा समावेश आहे; पायथन वापरून वेब डेव्हलपमेंट सुरू करण्यासाठी फ्लास्क स्थापित करणे, फ्लास्क-अॅपबिल्डरसह कार्य करणे, पायटेस्टसह चाचणी करणे इ. वेब डेव्हलपमेंट समुदाय सहसा फ्लास्कची तुलना जॅंगो नावाच्या आणखी एका लोकप्रिय पायथन वेब डेव्हलपमेंट फ्रेमवर्कशी करतो.
आम्ही हे फरक स्पष्ट करू आणि या मालिकेतील एका ट्यूटोरियलमध्ये या फ्रेमवर्कची तुलना देखील करू.