ट्यूटोरियल # 5: फ्लास्क डिजाइन ढाँचा र वेब अनुप्रयोगहरूको लागि उत्तम अभ्यासहरू
ट्यूटोरियल # 6: उदाहरणको साथ फ्लास्क API ट्यूटोरियल
यो परिचयात्मक पाइथन फ्लास्क ट्यूटोरियलले फ्लास्क के हो, पाइथनको स्थापना, भर्चुअलेनभ, फ्लास्क हेलो वर्ल्ड उदाहरण कोड उदाहरणहरू, डिबगिङ र परीक्षणको खण्डको साथ वर्णन गर्दछ:
वेबसाइट विकास हो एक सीप भन्दा एक कला को अधिक। यसलाई वास्तविक सफलता हुनको लागि के आवश्यक छ त्यसलाई सिर्जना गर्न लगनशीलता, साहस र समर्पणको साथमा धैर्यता र लगनशीलता चाहिन्छ। आजकल, सिकाउनेहरूका लागि जति सक्दो चाँडो गति लिन आवश्यक छ।
हामीले विद्यार्थीहरूको लागि यो पाइथन फ्लास्क ट्युटोरियल सिर्जना गरेका छौं र Python 3 को प्रयोग गरेर सरल र जटिल वेब प्रोग्रामिङहरू लागू गर्नको लागि। .
यो पाइथन फ्लास्क ट्यूटोरियल फ्लास्क शुरुआती ट्यूटोरियल जस्तै छ, जसले कभर गर्नेछ। Python, Virtualenv, र अन्य आवश्यक प्याकेजहरूको स्थापना। यस ट्यूटोरियलको शृङ्खलामा, हामी अन्य आवश्यक फ्लास्क प्लगइनहरूसँग फ्लास्क पनि स्थापना गर्नेछौं। हामीले Git कार्यहरू प्रयोग गरेर कोड डिबगिङ, परीक्षण, र निरन्तर एकीकरणमा खण्ड पनि समावेश गरेका छौं।
यस फ्लास्क शृङ्खलामा ट्यूटोरियलहरूको सूची
ट्यूटोरियल #1: पाइथन फ्लास्क ट्यूटोरियल – शुरुवातका लागि फ्लास्कको परिचय
ट्यूटोरियल #2: फ्लास्क टेम्प्लेट, फारम, दृश्य, र उदाहरणहरू सहित रिडिरेक्ट
ट्यूटोरियल #3: फ्लास्क डाटाबेस ह्यान्डलिंग - डाटाबेससँग फ्लास्क कसरी प्रयोग गर्ने
ट्यूटोरियल # 4: फ्लास्क एप र ब्लुप्रिन्टको साथ फ्लास्क प्रोजेक्ट लेआउट र;आवश्यकताहरूमा उल्लेख गरिएका चरणहरू।
चरण 1: पाइथन स्थापना गर्नुहोस्
जाँच गर्नुहोस् कि तपाईंले पाइथन 3 स्थापना गर्नुभएको छ वा छैन। यदि होइन भने, यहाँबाट पाइथन ३ डाउनलोड गर्नुहोस् र यसलाई आफ्नो अपरेटिङ सिस्टम अनुसार स्थापना गर्नुहोस्।
चरण २: पाइथन भर्चुअल वातावरण सिर्जना गर्नुहोस्
प्रयोग गरेर भर्चुअल वातावरण सिर्जना गर्नुहोस्। तलको आदेश।
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
तपाईंले फ्लास्कको अनुपस्थितिको बारेमा केही अपवादहरू देख्न सक्नुहुन्छ।आवेदन। यद्यपि, हामीले कुनै फ्लास्क एप सिर्जना गरेका छैनौं भनेर तिनीहरूलाई बेवास्ता गर्नुहोस्। हाम्रो एप फ्लास्कको एउटा उदाहरण हो, जुन Werkzeug वेब फ्रेमवर्क र Jinja टेम्प्लेटिंग इन्जिनमा र्यापर हो।
Werkzeug
Werkzeug एक WSGI टूलकिट हो। 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
अब जाँच गर्नुहोस् यदि तपाईं सक्नुहुन्छ भने मोन्गो क्लाइन्ट प्रयोग गरेर MongoDB सर्भरमा जडान गर्नुहोस्।
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 मा आफ्नो पहिलो कार्यक्रम सिर्जना गर्न, एप डाइरेक्टरी अन्तर्गत फाइल 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)
एकपटक तपाईंले यसलाई खोल्नुभएपछि, तपाईंले देख्नुहुनेछ कि ब्राउजरले डिबग PIN को लागि प्रम्प्ट देखाउनेछ। डिबग पिन दिनुहोस् र ठीकमा क्लिक गर्नुहोस्।
![](/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)
चरण २: पृष्ठमा तल स्क्रोल गर्नुहोस् र पाइथन प्याकेजको लागि अवस्थित कार्यप्रवाह टेम्प्लेट फेला पार्नुहोस्।
![](/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
हामी हाम्रो फ्लास्क अनुप्रयोगलाई नवीनतम Ubuntu Linux वितरणमा परीक्षण गर्न चाहन्छौं। 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: [वैकल्पिक]
नमूना ट्युटोरियल एपको लागि Github Jobs पृष्ठमा, हामी ब्याज र स्थान सिर्जना गर्न सक्छौं। यसलाई निर्माण स्थिति देखाउनको लागि README.md फाइलमा।
अब, जब पनि मास्टर शाखामा परिवर्तनहरू प्रतिबद्ध हुन्छन्, Git Workflow, python-package.yml मा लेखिए अनुसार अनुसरण गरिनेछ र Git कार्यहरूमा चल्नेछ। .
निष्कर्ष
यस ट्युटोरियलमा, हामीले फ्लास्क - एक पाइथन-आधारित वेब विकास ढाँचा प्रयोग गरी विकास गरिएको वेब अनुप्रयोगको लागि CI/CD कार्यप्रवाह सेटअप गर्नका लागि पूर्व शर्तहरूबाट सबै आधारभूत अवधारणाहरू समावेश गरेका छौं।
यस ट्यूटोरियलले सबै आवश्यक चरणहरू समावेश गर्दछ जस्तै पाइथन स्थापना, डाउनलोड र; फ्लास्क स्थापना गर्दै, फ्लास्क-एपबिल्डरसँग काम गर्दै, PyTest सँग परीक्षण, आदि पाइथन प्रयोग गरेर वेब विकासको साथ सुरू गर्न। वेब विकास समुदायले सामान्यतया फ्लास्कलाई Django भनिने अर्को लोकप्रिय पाइथन वेब विकास फ्रेमवर्कसँग तुलना गर्छ।
हामी यी भिन्नताहरूको व्याख्या गर्नेछौं र यी फ्रेमवर्कहरूलाई यस शृङ्खलाको एउटा ट्यूटोरियलमा पनि तुलना गर्नेछौं।