№5 заавар: Колбоны дизайны загвар ба вэб хэрэглээний шилдэг туршлагууд
№6 заавар: Flask API заавар
Энэхүү танилцуулга Python Flask заавар нь Flask гэж юу болох, Python, Virtualenv, Flask Hello World-ийг суулгах жишээн дээр кодын жишээ, дибаг хийх, тест хийх талаар тайлбарласан болно:
Вэбсайт хөгжүүлэх нь ур чадвар гэхээсээ илүү урлаг. Энэ нь жинхэнэ амжилтанд хүрэхийн тулд шаардлагатай зүйлийг бүтээхийн тулд тэвчээр, хичээл зүтгэл, тэвчээр, эр зориг, хичээл зүтгэлийг шаарддаг. Эдгээр өдрүүдэд суралцагчид аль болох хурдан хурдтай болох нь чухал юм.
Бид оюутнуудад Python 3 ашиглан энгийн бөгөөд нарийн төвөгтэй вэб програмчлалыг хурдасгах, хэрэгжүүлэхэд зориулж энэхүү Python колбоны зааврыг бүтээсэн. .
Энэхүү Python колбоны заавар нь колбоны анхан шатны заавартай төстэй бөгөөд энэ нь Python, Virtualenv болон бусад чухал багцуудыг суулгах. Энэхүү цуврал хичээлүүдэд бид Flask-г бусад шаардлагатай Flask залгаасуудын хамт суулгах болно. Мөн бид Git Actions ашиглан кодын дибаг хийх, турших, тасралтгүй нэгтгэх тухай хэсгийг оруулсан болно.
Энэхүү колбоны цувралын хичээлүүдийн жагсаалт
Заавар №1: Python Flask Хичээл – Эхлэгчдэд зориулсан колбонд зориулсан танилцуулга
Хичээл №2: Колбоны загвар, маягт, харах, жишээнүүдийг дахин чиглүүлэх
Заавар №3: Колбонд өгөгдлийн сантай ажиллах – Өгөгдлийн сантай колбыг хэрхэн ашиглах талаар
Заавар №4: Колбоны хэрэглүүр ба колбоны төслийн зураг төсөл & AMP;урьдчилсан нөхцөлүүдэд дурдсан алхмууд.
Алхам 1: Python суулгах
Та Python 3 суулгасан эсэхээ шалгана уу. Хэрэв үгүй бол эндээс Python 3-г татаж аваад үйлдлийн системийнхээ дагуу суулгаарай.
Алхам 2: Python виртуал орчин үүсгэнэ үү
доорх тушаал.
python3 -m venv venv
Python виртуал орчныг идэвхжүүлэхийн тулд доорх командыг ашиглана уу.
source venv/bin/activate
Бид виртуал орчныг идэвхжүүлэх, идэвхгүй болгох жишээг доор өгөв.
Энэ зааварт заасан бүх дараагийн командууд идэвхжсэн виртуал орчинд ажиллах ёстой. Виртуал орчинд дугуй бүтээх боломжтой болохын тулд дугуйны багцыг суулгаарай.
pip install wheel
Алхам 3: Колбонд татаж авах, суулгах
Бид колбыг татаж авах алхмуудыг хийх хэрэгтэй. Доор дурдсан алхмуудыг ашиглан Flask-г суулгана уу.
Одоо Flask суулгана уу.
pip install flask
Бидний зарим нь хамгийн сүүлийн үеийн эх кодын өөрчлөлттэй ажиллах дуртай. Бид доор өгөгдсөн командыг ашиглан Flask-ийн эх сурвалжийн хамгийн сүүлийн өөрчлөлтийг суулгаж болно.
Түр зуурын лавлах үүсгэ.
mkdir tmp
Одоо Github репозитороос Flask-г суулгана уу. Та доорх тушаалыг ажиллуулахын тулд интернетэд холбогдсон хэвээр байх шаардлагатай.
pip3 install -e [email protected]:pallets/flask.git#egg=flask
Суулгалт амжилттай болсон эсэхийг шалгахын тулд консолын гаралтыг харна уу. Одоо бид Колбоны командуудад хандах боломжтой эсэхийг шалгана уу.
flask --help
Та колбо байхгүйтэй холбоотой зарим үл хамаарах зүйлийг харж магадгүй.програм. Гэсэн хэдий ч бид ямар ч Flask програм үүсгээгүй тул тэдгээрийг үл тоомсорло. Манай апп нь Werkzeug вэб фреймворк болон Jinja templating engine дээрх боодол болох Flask-ийн жишээ юм.
Werkzeug
Werkzeug бол WSGI хэрэгслийн хэрэгсэл юм. WSGI нь зөвхөн вэб серверүүдэд вэб хүсэлтийг Python програмчлалын хэлээр бичигдсэн вэб програмууд руу дамжуулахад зориулагдсан дуудлагын конвенц юм.
Jinja
Загварчлал нь вэб хөгжүүлэгчдийн зайлшгүй шаардлагатай ур чадвар. Жинжа бол Python-д зориулсан бүрэн боломжуудтай, алдартай загварчлалын хөдөлгүүр юм. Энэ нь нэлээд илэрхийлэлтэй хэл бөгөөд загвар зохиогчдод зориулсан хүчирхэг хэрэгслүүдээр хангадаг.
Алхам 4: MongoDB суулгана уу
MongoDB-г суулгахын тулд доор дурдсан алхмуудыг дагана уу. Бид үүнийг Debian дээр суурилсан Линукс дээр суулгах алхмуудыг тодорхойлсон. Хэрэв та өөр үйлдлийн систем ашиглаж байгаа бол холбоос системд хандаж,
>
9>
> > > > 0 1>Одоо доорх тушаалыг ашиглан түлхүүрээ импортолно уу.
wget -qO - //www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -
Линукс түгээлтийн дагуу эх сурвалжийн жагсаалтын файлыг үүсгэнэ үү. Бид 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
Одоо доорх тушаалыг ашиглан MongoDB-г суулгана уу.
sudo apt-get install -y mongodb-org
Суулгалт амжилттай болмогц доорх командыг ашиглан MongoDB-г эхлүүлнэ үү.
sudo systemctl start mongod
Командыг ашиглан MongoDB-ийн төлөвийг шалгана уу.доор байна.
sudo systemctl status mongod
Одоо доор үзүүлсэн командыг өгч системийг дахин ачаалахад mongod автоматаар ажиллаж байгаа эсэхийг шалгаарай.
sudo systemctl enable mongod
Одоо та боломжтой эсэхийг шалгана уу. mongo клиент ашиглан MongoDB сервертэй холбогдоно уу.
mongo
Mongo shell-д тусламж болон dbs командуудыг үзүүлж үзнэ үү.
Колбоны програм үүсгэх
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
Бид доор өгөгдсөнтэй төстэй гаралтыг харах болно.
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
Sskeleton програмыг ажиллуулахын тулд терминал дээрх доорх тушаалыг ашиглана уу.
flask run
Flask Hello World
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-н хөгжүүлэлтийн серверийг ажиллуулахын тулд доорх тушаалыг ашиглана уу.
flask run
Одоо //localhost:5000/hello/ руу шилжинэ үү.хөтөч.
Дибаг хийх
Одоогоор хөгжүүлэлтийн сервер дибаг горимд ажиллахгүй байна. Дибаг хийх горимгүй бол Колбоны програмын эх кодын алдааг олоход хэцүү байдаг.
Дбаг хийх горим нь колбонд дараах үр дүнд хүрнэ:
- Дибаг хийх горим нь Автомат дахин ачаалагчийг идэвхжүүлдэг. Энэ нь бид програмын эх кодонд өөрчлөлт оруулсны дараа хөгжүүлэлтийн серверийг дахин эхлүүлэх шаардлагагүй гэсэн үг.
- Дбаг хийх горим нь Python дибаглагчийг идэвхжүүлдэг. Онцгой байдлын үед бид хувьсагчдын утгыг шалгаж болно.
- Дбаг хийх горим нь Колбонд програмын дибаг хийхийг идэвхжүүлдэг. Бид дибаг хийх үед янз бүрийн хувьсагчийн утгыг шалгаж болно.
Хэрэв ажиллаж байгаа бол хөгжүүлэлтийн серверийг зогсоо. Та 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/ руу очиход програм нь үл хамаарах зүйл үүсгэсэн болохыг харах болно. Хөтөч нь доор үзүүлсэн шиг стекийн мөрийг харуулдаг.
Цаашилбал, хөгжүүлэлтийн сервер ажиллаж байгаа консолыг харна уу. Энэ удаад та үүнийг олж мэдэх болно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 дүрс дээр дарж бүрхүүлийг интерактив горимд нээнэ үү.
Та үүнийг нээмэгц хөтөч нь дибаг хийх PIN кодыг харуулахыг харах болно. Дибаг хийх ПИН кодоо өгөөд OK товчийг дарна уу.
Бид дибаг хийх ПИН-г өгсний дараа үргэлжлүүлэх юм бол интерактив бүрхүүлд хандах боломжтой.
Бид хөтчөөс бүрхүүлд хандах ба Үл хамаарах байдлын шалтгааныг олохын тулд хувьсагчдын утгыг шалгаж, алдааг илүү сайн зохицуулах боломжтой. Доорх зурагт үзүүлсэн жишээнүүдийн аль нэгийг харна уу.
Одоо view.py дээрх кодыг доор үзүүлсэн шиг өөрчилнө үү. Бид онцгой тохиолдол гарсан мөрөнд тайлбар хийсэн гэдгийг анхаарна уу.
@expose("/") def hello(self): # raise Exception("A custom exception to learn DEBUG Mode") return "Hello, World! from Software Testing Help"
Колбоны програмыг турших
Одоо бидний боловсруулж буй Flask програмын анхны тестээ бичье. Эхлээд PyTest-ийг суулгана уу. PyTest бол туршилтын хүрээ юм. Энэ нь бидэнд илүү сайн код бичихэд тусалдаг.
Түүгээр ч зогсохгүй бид программуудаа хөгжүүлж байхдаа нэгжийн тест бичиж чаддаг учраас TDD арга барилыг дагаж мөрдөх боломжтой. TDD нь Test-Driven Development гэсэн үгийн товчлол юм. Бидний дараагийн хичээлүүдэдЭнэ цувралын хувьд бид үргэлж эхлээд тест бичиж, үзэл бодол, загвараа хөгжүүлэх болно.
PyTest-г суулгана уу
pip install pytest
Одоо програмын лавлах дотор 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 нь Тестүүдийг автоматаар цуглуулж, үр дүнг стандарт гаралт дээр харуулдаг.
GitHub ажлын урсгалыг үүсгэх
Бид Git Actions-ийг ашиглан жишээ програмдаа CI/CD ажлын урсгалыг үүсгэдэг. Төсөлдөө зориулж доор дурдсан алхмуудыг дагана уу.
Алхам 1: GitHub дээрх репозиторын хуудас руу шилжинэ үү. Git Actions дээр товшино уу.
Алхам 2: Хуудсыг доош гүйлгэж, Python багцын одоо байгаа ажлын урсгалын загварыг олоорой.
Алхам 3: Python багцын ажлын урсгалыг тохируулна уу.
Алхам 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
Бид Flask програмаа хамгийн сүүлийн үеийн Ubuntu Linux түгээлт дээр туршихыг хүсэж байна. Үйлдлийн системээс гадна бид туршилтуудаа зөвхөн Python 3.7 болон Python 3.8 ашиглан явуулахыг хүсэж байна.
Алхам 5: python-package.yml-г шинэчлэгдсэн утгуудыг ашиглана уу.
Алхам 6: Өмнөх хуудсан дээрх амлалт нь биднийг GitActions руу аваачна.ажлын байр.
Алхам 7: [Заавал биш]
Жишээ заавар програмын Github Jobs хуудсан дээр бид тэмдэг болон байршуулах боломжтой. Үүнийг бүтээх статусыг харуулах README.md файл дээр байрлуулна.
Одоо өөрчлөлтийг мастер салбар руу хийх бүрд python-package.yml дээр бичсэн Git Workflow-г дагаж, Git Actions дээр ажиллах болно. .
Дүгнэлт
Энэ зааварт бид Flask – Python-д суурилсан вэб хөгжүүлэлтийн хүрээ ашиглан боловсруулсан вэб програмын урьдчилсан нөхцөлөөс эхлээд CI/CD ажлын урсгалыг тохируулах хүртэлх бүх үндсэн ойлголтуудыг авч үзсэн.
Энэ заавар нь Python суулгах, татаж авах & Python ашиглан вэб хөгжүүлэлтийг эхлүүлэхийн тулд Flask суулгах, Flask-Appbuilder-тэй ажиллах, PyTest-ээр тест хийх гэх мэт. Вэб хөгжүүлэлтийн нийгэмлэг ихэвчлэн Flask-ийг Django нэртэй өөр нэг алдартай Python вэб хөгжүүлэлтийн хүрээтэй харьцуулдаг.
Бид эдгээр ялгааг тайлбарлах бөгөөд мөн энэ цуврал хичээлүүдийн аль нэгэнд эдгээр хүрээг харьцуулах болно.