Tutorial #5- ဝဘ်အပလီကေးရှင်းများအတွက် Flask ဒီဇိုင်းပုံစံများနှင့် အကောင်းဆုံးအလေ့အကျင့်များ
ကျူတိုရီရယ် #6- Flask API ကျူတိုရီရယ် နမူနာနှင့်အတူ
ဤနိဒါန်းတွင် Python Flask သင်ခန်းစာတွင် Flask ဟူသည် အဘယ်နည်း၊ Python၊ Virtualenv၊ Flask Hello World နမူနာကို ကုဒ်နမူနာများ၊ အမှားရှာခြင်းနှင့် စမ်းသပ်ခြင်းဆိုင်ရာ ကဏ္ဍတစ်ခုဖြင့် ရှင်းပြသည်-
ဝဘ်ဆိုက် ဖွံ့ဖြိုးတိုးတက်မှုသည် အတတ်ပညာထက် အနုပညာတစ်ခုထက် ပိုပါတယ်။ ၎င်းသည် စစ်မှန်သောအောင်မြင်မှုအတွက် လိုအပ်သောအရာများကို ဖန်တီးရန် စိတ်ရှည်မှု၊ လုံ့လ၊ ဇွဲ၊ သတ္တိနှင့် စေတနာတို့နှင့်အတူ လိုအပ်ပါသည်။ ယနေ့ခေတ်တွင် သင်ယူသူများအတွက် တတ်နိုင်သမျှအမြန်ဆုံးအရှိန်မြှင့်ရန်မှာ မရှိမဖြစ်လိုအပ်ပါသည်။
ကျောင်းသားများအတွက် Python 3 ကိုအသုံးပြု၍ ရိုးရှင်းပြီး ရှုပ်ထွေးသောဝဘ်ပရိုဂရမ်များကို အရှိန်မြှင့်လုပ်ဆောင်နိုင်ရန် ဤ Python Flask သင်ခန်းစာကို ကျွန်ုပ်တို့ ဖန်တီးထားပါသည်။ .
ဤ Python Flask သင်ခန်းစာသည် ဓာတ်ဘူးစတင်အသုံးပြုသူ သင်ခန်းစာနှင့် ပိုတူသည်၊၊ Python၊ Virtualenv နှင့် အခြားသော မရှိမဖြစ် ပက်ကေ့ဂျ်များ တပ်ဆင်ခြင်း။ ဤသင်ခန်းစာများစီးရီးတွင်၊ ကျွန်ုပ်တို့သည် အခြားလိုအပ်သော Flask plugins များနှင့်အတူ Flask ကို ထည့်သွင်းပါမည်။ Git လုပ်ဆောင်ချက်များကို အသုံးပြု၍ ကုဒ်အမှားပြင်ဆင်ခြင်း၊ စမ်းသပ်ခြင်းနှင့် စဉ်ဆက်မပြတ်ပေါင်းစပ်ခြင်းဆိုင်ရာ ကဏ္ဍတစ်ခုကိုလည်း ထည့်သွင်းထားပါသည်။
ဤ Flask Series တွင် ကျူတိုရီရယ်များစာရင်း
ကျူတိုရီရယ် #1: Python Flask ကျူတိုရီရယ် – စတင်သူများအတွက် Flask နိဒါန်း
ကျူတိုရီရယ် #2- Flask Template၊ Form၊ View၊ နှင့် Redirect တို့ကို နမူနာများဖြင့်
Tutorial #3: Flask ဒေတာဘေ့စကို ကိုင်တွယ်ခြင်း – ဒေတာဘေ့စ်တစ်ခုဖြင့် Flask ကိုအသုံးပြုနည်း
ကျူတိုရီရယ် #4- Flask App နှင့် Flask Project Layout with Blueprint &ကြိုတင်လိုအပ်ချက်များတွင် ဖော်ပြထားသော အဆင့်များ။
အဆင့် 1- Python ကို ထည့်သွင်းပါ
သင် Python 3 ကို ထည့်သွင်းထားခြင်း ရှိ၊ မရှိ စစ်ဆေးပါ။ မဟုတ်ပါက၊ Python 3 ကို ဤနေရာမှ ဒေါင်းလုဒ်ဆွဲပြီး သင့်လုပ်ငန်းလည်ပတ်မှုစနစ်အရ ၎င်းကို ထည့်သွင်းပါ။
အဆင့် 2- Python Virtual Environment တစ်ခုဖန်တီးပါ
အသုံးပြု၍ virtual ပတ်ဝန်းကျင်တစ်ခု ဖန်တီးပါ။ အောက်ဖော်ပြပါ command။
python3 -m venv venv
Python virtual ပတ်၀န်းကျင်ကို အသက်သွင်းရန် အောက်ဖော်ပြပါ command ကို အသုံးပြုပါ။
source venv/bin/activate
အောက်ပါ အတုအယောင်ပတ်ဝန်းကျင်၏ အသက်သွင်းခြင်းနှင့် ပိတ်ခြင်းဆိုင်ရာ နမူနာကို ကျွန်ုပ်တို့ ပေးထားပါသည်။
ဤသင်ခန်းစာရှိ နောက်ဆက်တွဲ command များအားလုံးကို အသက်ဝင်သော virtual ပတ်ဝန်းကျင်တွင် လုပ်ဆောင်သင့်သည်။ ကျွန်ုပ်တို့သည် ပတ်၀န်းကျင်အတွင်း၌ ဘီးများတည်ဆောက်နိုင်စေရန်အတွက် ဘီးပက်ကေ့ဂျ်ကို ထည့်သွင်းပါ။
pip install wheel
အဆင့် 3- Flask ဒေါင်းလုဒ်လုပ်ပြီး ထည့်သွင်းပါ
ကျွန်ုပ်တို့သည် Flask ဒေါင်းလုဒ်အဆင့်များကို လုပ်ဆောင်ရန်လိုအပ်ပြီး အောက်ဖော်ပြပါ အဆင့်များကို အသုံးပြု၍ Flask ကို ထည့်သွင်းပါ။
ယခု Flask ကို ထည့်သွင်းပါ။
pip install flask
ကျွန်ုပ်တို့ထဲမှ အချို့သည် နောက်ဆုံးပေါ် အရင်းအမြစ်ကုဒ် အပြောင်းအလဲများနှင့်အတူ လုပ်ဆောင်လိုပါသည်။ Flask ၏ရင်းမြစ်များကို နောက်ဆုံးပြောင်းလဲမှုများဖြင့် ထည့်သွင်းရန် အောက်ဖော်ပြပါ အမိန့်ကို ကျွန်ုပ်တို့ အသုံးပြုနိုင်ပါသည်။
ယာယီလမ်းညွှန်တစ်ခု ပြုလုပ်ပါ။
mkdir tmp
Github repository မှ Flask ကို ယခု ထည့်သွင်းပါ။ အောက်ဖော်ပြပါ command ကိုအလုပ်လုပ်ရန်အတွက် သင်သည်အင်တာနက်ချိတ်ဆက်ထားရန် လိုအပ်ပါသည်။
pip3 install -e [email protected]:pallets/flask.git#egg=flask
အောင်မြင်သောတပ်ဆင်မှုကိုစစ်ဆေးရန် console outputs ကိုကြည့်ပါ။ ယခု ကျွန်ုပ်တို့သည် Flask ညွှန်ကြားချက်များကို ဝင်ရောက်နိုင်၊ မရှိ စစ်ဆေးပါ။
flask --help
Flask မရှိခြင်းနှင့်ပတ်သက်၍ ခြွင်းချက်အချို့ကို သင်တွေ့မြင်နိုင်ပါသည်။လျှောက်လွှာ။ သို့သော် ကျွန်ုပ်တို့သည် မည်သည့် Flask အက်ပ်ကိုမျှ မဖန်တီးထားသောကြောင့် ၎င်းတို့ကို လစ်လျူရှုပါ။ ကျွန်ုပ်တို့၏အက်ပ်သည် Werkzeug ဝဘ်ဘောင်နှင့် Jinja နမူနာပုံစံအင်ဂျင်တွင် ထုပ်ပိုးထားသည့် Flask ၏ဥပမာတစ်ခုဖြစ်သည်။
Werkzeug
Werkzeug သည် WSGI ကိရိယာတန်ဆာပလာတစ်ခုဖြစ်သည်။ WSGI သည် Python ပရိုဂရမ်းမင်းဘာသာစကားဖြင့် ရေးသားထားသော ဝဘ်အက်ပလီကေးရှင်းများသို့ ဝဘ်ဆာဗာများထံသို့ ဝဘ်တောင်းဆိုမှုများ ပေးပို့ရန် ဝဘ်ဆာဗာများအတွက် ခေါ်ဆိုမှုကွန်ဗင်းရှင်းတစ်ခုသာဖြစ်သည်။
Jinja
Templating သည် တစ်ခုဖြစ်သည်။ ဝဘ် developer များ၏မရှိမဖြစ်လိုအပ်သောကျွမ်းကျင်မှု။ Jinja သည် Python အတွက် အပြည့်အ၀ပါဝင်ပြီး လူကြိုက်များသော templateing engine တစ်ခုဖြစ်သည်။ ၎င်းသည် အလွန်ဖော်ပြနိုင်သော ဘာသာစကားတစ်ခုဖြစ်ပြီး နမူနာပုံစံရေးသားသူများအတွက် ခိုင်ခံ့သောကိရိယာအစုံကို ပံ့ပိုးပေးပါသည်။
အဆင့် 4- MongoDB ကိုထည့်သွင်းပါ
MongoDB ကိုထည့်သွင်းရန်အောက်ဖော်ပြပါအဆင့်များကို လိုက်နာပါ။ ၎င်းကို Debian အခြေခံ Linux တွင် ထည့်သွင်းရန် အဆင့်များကို ကျွန်ုပ်တို့ ဖော်ပြထားပါသည်။ အကယ်၍ သင်သည် အခြားသော လည်ပတ်မှုစနစ်ကို အသုံးပြုနေပါက လင့်ခ်ကို ဝင်ရောက်ပြီး ရည်ရွယ်ထားသည့် လည်ပတ်မှုစနစ်အတိုင်း ထည့်သွင်းပါ။
MongoDB အများသူငှာ GPG ကီးကို ထည့်သွင်းရန်အတွက် gnupg ကို ထည့်သွင်းပါ။
sudo apt-get install gnupg
ယခု သော့ကို အောက်ဖော်ပြပါ ညွှန်ကြားချက်ကို အသုံးပြု၍ တင်သွင်းပါ။
wget -qO - //www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -
သင်၏ Linux ဖြန့်ဖြူးမှုအရ အရင်းအမြစ်စာရင်းဖိုင်ကို ဖန်တီးပါ။ Debian အရ ရင်းမြစ်များစာရင်းကို ကျွန်ုပ်တို့ထည့်သွင်းထားပါသည်။
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
အောက်ပါ command ကိုအသုံးပြု၍ MongoDB ကိုယခုထည့်သွင်းပါ။
sudo apt-get install -y mongodb-org
တပ်ဆင်မှု အောင်မြင်သည်နှင့်၊ အောက်ဖော်ပြပါ ညွှန်ကြားချက်ကို အသုံးပြု၍ MongoDB ကို စတင်ပါ။
sudo systemctl start mongod
ကွန်မန်းကို အသုံးပြု၍ MongoDB ၏ အခြေအနေကို စစ်ဆေးပါ၊အောက်တွင်ဖော်ပြထားသော။
sudo systemctl status mongod
ယခု mongod သည် အောက်ဖော်ပြပါ command ကိုထုတ်ပေးခြင်းဖြင့် system reboot တွင်အလိုအလျောက်စတင်ကြောင်းသေချာပါစေ။
sudo systemctl enable mongod
ယခုသင်လုပ်နိုင်သည်ရှိမရှိစစ်ဆေးပါ။ mongo ကလိုင်းယင့်ကို အသုံးပြု၍ MongoDB ဆာဗာသို့ ချိတ်ဆက်ပါ။
mongo
mongo shell တွင်၊ အကူအညီကို အသုံးပြုပြီး dbs ညွှန်ကြားချက်များကို ပြသပါ။
Flask အက်ပ်တစ်ခု ဖန်တီးပါ
flask-appbuilder နှင့် mongoengine တပ်ဆင်ရန် အောက်ဖော်ပြပါ အမိန့်ကို အသုံးပြုပါ။
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
အောက်တွင်ပေးထားသည့်ပုံစံနှင့်ဆင်တူသော output ကိုကျွန်ုပ်တို့မြင်ရပါမည်။
Your new app name: exampleApp Your engine type, SQLAlchemy or MongoEngine (SQLAlchemy, MongoEngine) [SQLAlchemy]: MongoEngine Downloaded the skeleton app, good coding!
ပရောဂျက်၏အပြင်အဆင်နှင့်အက်ပ်ကိုကြည့်ပါ။ အောက်ပါ tree command ၏ output ကို ပြထားပါသည်။
Flask config ဖိုင်ကို ကြည့်ကြရအောင်။ ၎င်းသည် နောက်ဆုံး command ၏ရလဒ်အဖြစ် default config ကိုထုတ်ပေးပါသည်။ အောက်ဖော်ပြပါအတိုင်း 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
အရိုးစုအက်ပ်ကို အသုံးပြုရန်၊ terminal ပေါ်ရှိ အောက်ဖော်ပြပါအမိန့်ကို အသုံးပြုပါ။
flask run
Flask Hello World
fskTutorialApp တွင် သင်၏ပထမဆုံးပရိုဂရမ်ကိုဖန်တီးရန်၊ အက်ပ်လမ်းညွှန်အောက်တွင် ဖိုင် 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())
အထက်ပါအရင်းအမြစ်ကုဒ်ကိုထည့်ပြီးနောက် ဖိုင်ကိုသိမ်းဆည်းပါ။ ပရောဂျက်၏ root directory သို့သွား၍ Flask ၏ဖွံ့ဖြိုးတိုးတက်မှုဆာဗာကိုလည်ပတ်ရန်အောက်ပါ command ကိုအသုံးပြုပါ။
flask run
ယခုထွက်ရှိမှုကိုကြည့်ရန် //localhost:5000/hello/ သို့သွားပါ။ဘရောက်ဆာ။
အမှားရှာပြင်ခြင်း
လောလောဆယ်တွင်၊ ဖွံ့ဖြိုးတိုးတက်မှုဆာဗာသည် အမှားအယွင်းမုဒ်တွင် လုပ်ဆောင်နေခြင်းမဟုတ်ပါ။ အမှားရှာပြင်ခြင်းမုဒ်မပါဘဲ၊ Flask အပလီကေးရှင်း၏အရင်းအမြစ်ကုဒ်ရှိအမှားများကိုရှာဖွေရန်ခက်ခဲသည်။
Flask ရှိ အမှားရှာမုဒ်သည် အောက်ပါအတိုင်းဖြစ်သည်-
- အမှားရှာပြင်မုဒ်သည် အလိုအလျောက် ပြန်လည်စတင်ခြင်းကို အသက်သွင်းသည်။ ဆိုလိုသည်မှာ အပလီကေးရှင်း၏ အရင်းအမြစ်ကုဒ်တွင် အပြောင်းအလဲများ ပြုလုပ်ပြီးနောက် ဖွံ့ဖြိုးတိုးတက်ရေးဆာဗာကို ပြန်လည်စတင်ရန် မလိုအပ်ပါ။
- ဒီဘာဂ်မုဒ်သည် Python အမှားရှာပြင်ဂါကို အသက်သွင်းသည်။ ခြွင်းချက်အတွင်း ကိန်းရှင်များ၏ တန်ဖိုးများကို ကျွန်ုပ်တို့ စစ်ဆေးနိုင်ပါသည်။
- ဒီဘာဂ်မုဒ်သည် Flask အပလီကေးရှင်း အမှားရှာပြင်ခြင်းကို ဖွင့်ပေးသည်။ အမှားရှာပြင်သည့် ဆက်ရှင်များတွင် အမျိုးမျိုးသော ကိန်းရှင်များ၏ တန်ဖိုးများကို ကျွန်ုပ်တို့ စစ်ဆေးနိုင်ပါသည်။
၎င်းသည် လုပ်ဆောင်နေပါက ဖွံ့ဖြိုးတိုးတက်ရေးဆာဗာကို ရပ်ပါ။ အလားတူလုပ်ဆောင်ရန် CTRL + C သို့မဟုတ် ကီးဘုတ်ကြားဖြတ်တောက်ခြင်းကို သင်အသုံးပြုနိုင်ပါသည်။
ဒီဘာဂ်မုဒ်ကိုဖွင့်ကာ ဖွံ့ဖြိုးတိုးတက်မှုဆာဗာကို ယာယီဖွင့်ရန် အောက်ပါကုဒ်ကိုသုံးပါ။
FLASK_ENV=development flask run
ရှာဖွေရန် Debugger PIN အတွက် ကွန်ဆိုးလ်ကို မှတ်သားပြီး ၎င်းကို မှတ်ထားပါ။
ယခု အထက်ဖော်ပြပါ ကုဒ်အတိုအထွာများ၏ မျဉ်းကြောင်းများဖြင့် အထက်တွင်ရေးထားသော HelloWorld မြင်ကွင်းကို ပြောင်းလဲကြပါစို့။ ကျွန်ုပ်တို့သည် စိတ်ကြိုက်ခြွင်းချက်တစ်ခုအား မိတ်ဆက်ပေးခဲ့ကြောင်း သတိပြုပါ။
@expose("/") def hello(self): raise Exception("A custom exception to learn DEBUG Mode") return "Hello, World! from Software Testing Help"
//localhost:5000/hello/ သို့သွားပါ၊ ထို့နောက် အပလီကေးရှင်းတွင် ခြွင်းချက်တစ်ခုတိုးလာသည်ကို သင်တွေ့ရပါမည်။ ဘရောက်ဆာသည် အောက်တွင်ပြထားသည့်အတိုင်း stack trace ကိုပြသသည်။
![](/wp-content/uploads/guides/iae5sr2a76-3.png)
ထို့ပြင်၊ developer server လည်ပတ်နေသည့် console ကိုကြည့်ပါ။ ဒီတစ်ခါတော့ တွေ့ရလိမ့်မယ်။views.py တွင် အပြောင်းအလဲများကို အလိုအလျောက်တွေ့ရှိပြီး အမှားရှာပြင်ဆာဗာသည် သူ့ဘာသာသူ ပြန်လည်စတင်သည်။ ယခု ကျွန်ုပ်တို့ ၎င်းကို ကိုယ်တိုင် ပြန်လည်စတင်ရန် မလိုအပ်ပါ။
ကွန်ဆိုးလ်တွင် အောက်တွင် ပြထားသည့်အတိုင်း လိုင်းများ ပါရှိပါမည်။ နောင်တွင် အမှားအယွင်းခံရန် PIN ကို မှတ်သားထားရန် လိုအပ်ပါသည်။
* 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
ယခု ဘရောက်ဆာရှိ stack trace ကို စစ်ဆေးပြီး နောက်ဆုံးစာကြောင်းသို့ သွားပါ။ ၎င်း၏အမြင်ကို ချဲ့ထွင်ရန် ၎င်းကို ကလစ်နှိပ်ပြီး အခွံကို အပြန်အလှန်တုံ့ပြန်သည့်မုဒ်တွင် ဖွင့်ရန် CLI အိုင်ကွန်ကို နှိပ်ပါ။
![](/wp-content/uploads/guides/iae5sr2a76-4.png)
၎င်းကိုဖွင့်ပြီးသည်နှင့်၊ ဘရောက်ဆာသည် အမှားအယွင်းပြုလုပ်ရန် PIN ကို အချက်ပြမည်ဖြစ်ကြောင်း သင်တွေ့ရပါမည်။ Debug PIN ကို ပေးပြီး OK ကို နှိပ်ပါ။
![](/wp-content/uploads/guides/iae5sr2a76-5.png)
Debug PIN ကို ပေးပြီးနောက် ရှေ့ ဆက်သွားသည်နှင့်၊ အပြန်အလှန် တုံ့ပြန်သည့် ရှဲလ်ကို ဝင်ရောက် အသုံးပြုနိုင် ပါသည်။
ကျွန်ုပ်တို့သည် Shell ကို ဘရောက်ဆာ အတွင်းမှ ဝင်ရောက် ပြီး Exception ၏အကြောင်းရင်းကိုရှာဖွေရန်နှင့် error ကို ပိုမိုကောင်းမွန်သောနည်းလမ်းဖြင့် ကိုင်တွယ်ရန် variable များ၏တန်ဖိုးများကိုစစ်ဆေးနိုင်သည်။ ကျေးဇူးပြု၍ အောက်ပါပုံတွင်ပြထားသည့် နမူနာများထဲမှ တစ်ခုကို ကြည့်ပါ။
![](/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"
Flask Application ကိုစမ်းသပ်ခြင်း
ယခု ကျွန်ုပ်တို့တီထွင်နေသော Flask အပလီကေးရှင်းအတွက် ကျွန်ုပ်တို့၏ပထမဆုံးစမ်းသပ်မှုကို ရေးလိုက်ကြပါစို့။ ပထမဦးစွာ PyTest ကို install လုပ်ပါ။ PyTest သည် စမ်းသပ်မှုဘောင်တစ်ခုဖြစ်သည်။ ၎င်းသည် ကျွန်ုပ်တို့အား ပိုမိုကောင်းမွန်သောကုဒ်ရေးရန် ကူညီပေးသည်။
ထို့ပြင်၊ ကျွန်ုပ်တို့၏အက်ပ်လီကေးရှင်းများကို တီထွင်နေစဉ်တွင် ယူနစ်စမ်းသပ်မှုများကို ရေးနိုင်သောကြောင့် TDD ချဉ်းကပ်မှုကို လိုက်နာရန် ဖြစ်နိုင်သည်။ TDD သည် Test-Driven Development ကို ကိုယ်စားပြုသည်။ ကျွန်ုပ်တို့၏နောက်ဆက်တွဲသင်ခန်းစာများတွင်ဤစီးရီး၊ ကျွန်ုပ်တို့သည် စမ်းသပ်မှုများကို ဦးစွာရေးသားပြီး ကျွန်ုပ်တို့၏အမြင်များ သို့မဟုတ် မော်ဒယ်များကို ပြုစုပျိုးထောင်ပါမည်။
PyTest ကိုထည့်သွင်းပါ
pip install pytest
ယခု app directory အတွင်းတွင် tests ဟုခေါ်သော လမ်းညွှန်တစ်ခုကို ဖန်တီးပြီး ၎င်းထဲတွင် 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 သည် Tests များကို အလိုအလျောက်စုဆောင်းပြီး စံထုတ်ပေးသည့်ရလဒ်များကို ပြသပါသည်။
![](/wp-content/uploads/guides/iae5sr2a76-7.png)
GitHub Workflow တစ်ခုဖန်တီးပါ
ကျွန်ုပ်တို့၏နမူနာအပလီကေးရှင်းအတွက် CI/CD အလုပ်အသွားအလာကိုဖန်တီးရန် Git Actions ကိုအသုံးပြုပါသည်။ သင့်ပရောဂျက်အတွက် အောက်ဖော်ပြပါအဆင့်များကို လိုက်နာပါ။
အဆင့် 1- GitHub ရှိ သိုလှောင်ရေးစာမျက်နှာသို့ သွားပါ။ Git လုပ်ဆောင်ချက်များကို နှိပ်ပါ။
![](/wp-content/uploads/guides/iae5sr2a76-8.png)
အဆင့် 2- စာမျက်နှာပေါ်တွင် ဆင်းပြီး Python ပက်ကေ့ဂျ်အတွက် ရှိပြီးသား အလုပ်အသွားအလာ ပုံစံတစ်ခုကို ရှာပါ။
![](/wp-content/uploads/guides/iae5sr2a76-9.png)
အဆင့် 3- Python package Workflow ကို စနစ်ထည့်သွင်းပါ။
![](/wp-content/uploads/guides/iae5sr2a76-10.png)
အဆင့် 4- python-package.yml အလုပ်အသွားအလာ ဖွဲ့စည်းမှုဖွင့်ပြီးသည်နှင့် ပေးထားသော yaml အပိုဆောင်းအပေါ်မူတည်၍ ၎င်းကို အပ်ဒိတ်လုပ်ပါ။ tag တန်ဖိုးများ။
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 ဖြန့်ဖြူးမှုတွင် ကျွန်ုပ်တို့၏ Flask အက်ပ်ကို စမ်းသပ်လိုပါသည်။ OS အပြင်၊ ကျွန်ုပ်တို့သည် Python 3.7 နှင့် Python 3.8 တို့ကိုသာ အသုံးပြု၍ ကျွန်ုပ်တို့၏စမ်းသပ်မှုများကို လုပ်ဆောင်လိုပါသည်။
အဆင့် 5- အပ်ဒိတ်တန်ဖိုးများနှင့် python-package.yml ကို ထည့်သွင်းပါ။
![](/wp-content/uploads/guides/iae5sr2a76-11.png)
အဆင့် 6- ယခင်စာမျက်နှာရှိ commit သည် ကျွန်ုပ်တို့အား GitActions သို့ ခေါ်ဆောင်သွားသည်အလုပ်များ။
![](/wp-content/uploads/guides/iae5sr2a76-12.png)
အဆင့် 7- [ချန်လှပ်နိုင်သည်]
နမူနာသင်ခန်းစာအက်ပ်အတွက် Github Jobs စာမျက်နှာတွင်၊ ကျွန်ုပ်တို့သည် တံဆိပ်နှင့်နေရာကို ဖန်တီးနိုင်သည် တည်ဆောက်မှုအခြေအနေကိုပြသရန်အတွက် README.md ဖိုင်တွင် ၎င်းကိုလုပ်ဆောင်သည်။
ယခုအခါ၊ ပင်မဌာနခွဲ၊ Git Workflow တွင် အပြောင်းအလဲများကို ကတိကဝတ်ပြုသည့်အခါတိုင်း၊ python-package.yml တွင် ရေးသားထားသည့်အတိုင်း လိုက်နာပြီး Git လုပ်ဆောင်ချက်များကို လုပ်ဆောင်သွားမည်ဖြစ်သည်။ .
နိဂုံးချုပ်
ဤသင်ခန်းစာတွင်၊ Flask – A Python-based web development framework ကိုအသုံးပြုထားသော ဝဘ်အပလီကေးရှင်းအတွက် CI/CD အလုပ်အသွားအလာကို သတ်မှတ်ခြင်းအထိ အခြေခံသဘောတရားများအားလုံးကို ကျွန်ုပ်တို့ အကျုံးဝင်ပါသည်။
ဤသင်ခန်းစာတွင် Python ထည့်သွင်းခြင်း၊ ဒေါင်းလုဒ်လုပ်ခြင်း & Flask ကိုထည့်သွင်းခြင်း၊ Flask-Appbuilder နှင့်လုပ်ဆောင်ခြင်း၊ PyTest ဖြင့်စမ်းသပ်ခြင်းစသည်တို့ကို Python ကိုအသုံးပြု၍ ဝဘ်ဖွံ့ဖြိုးတိုးတက်မှုစတင်ရန်။ ဝဘ်ဖွံ့ဖြိုးတိုးတက်မှုအသိုက်အဝန်းသည် များသောအားဖြင့် Flask ကို Django ဟုခေါ်သော နာမည်ကြီး Python ဝဘ်ဖွံ့ဖြိုးတိုးတက်မှုဆိုင်ရာ မူဘောင်နှင့် နှိုင်းယှဉ်လေ့ရှိပါသည်။
ကျွန်ုပ်တို့သည် ဤကွဲပြားမှုများကို ရှင်းပြပြီး ဤစီးရီးရှိ သင်ခန်းစာများအနက်မှ ဤဘောင်များကို နှိုင်းယှဉ်ပါမည်။