Водич бр. 5: Обрасци дизајна фласка и најбоље праксе за веб апликације
Водич #6: Водич за Фласк АПИ са примером
Овај уводни водич за Питхон Фласк објашњава шта је Фласк, пример инсталације Питхон, Виртуаленв, Фласк Хелло Ворлд са одељком о примерима кода, отклањању грешака и тестирању:
Развој веб сајта је више уметност него вештина. То захтева стрпљење и марљивост, заједно са истрајношћу, храброшћу и посвећеношћу да би се створило оно што је неопходно за прави успех. Ових дана је од суштинског значаја за ученике да дођу до брзине што је пре могуће.
Направили смо овај водич за Питхон Фласк за ученике да се упознају са брзином и имплементирају једноставно и сложено веб програмирање користећи Питхон 3 .
Овај водич за Питхон Фласк више личи на водич за почетнике за фласк, који ће покрити инсталација Питхон-а, Виртуаленв-а и других основних пакета. У овој серији туторијала, такође ћемо инсталирати Фласк заједно са осталим неопходним Фласк додацима. Такође смо укључили одељак о отклањању грешака, тестирању и континуираној интеграцији кода помоћу Гит Ацтионс.
Листа упутстава у овој серији Фласк
Водич #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
Сада инсталирајте Фласк из Гитхуб спремишта. Морате да останете повезани на интернет да би следећа команда радила.
pip3 install -e [email protected]:pallets/flask.git#egg=flask
Погледајте излазе конзоле да бисте проверили успешну инсталацију. Сада проверите да ли можемо да приступимо командама Фласк-а.
flask --help
Можда ћете видети неке изузетке у вези са одсуством Фласк-аапликација. Међутим, занемарите их јер нисмо креирали ниједну апликацију Фласк. Наша апликација је инстанца Фласк-а, који је омотач на Веркзеуг веб оквиру и Јиња шаблонском механизму.
Веркзеуг
Веркзеуг је ВСГИ комплет алата. ВСГИ је само позивна конвенција за веб сервере да прослеђују веб захтеве веб апликацијама написаним у програмском језику Питхон.
Јиња
Шаблон је основни скуп вештина веб програмера. Јиња је потпуно функционалан и популаран механизам за шаблонирање за Питхон. То је прилично изражајан језик и пружа робустан скуп алата за ауторе шаблона.
4. корак: Инсталирајте МонгоДБ
Пратите доле наведене кораке да бисте инсталирали МонгоДБ. Навели смо кораке за његово инсталирање у Линук базиран на Дебиан-у. Ако користите други оперативни систем, приступите линку и инсталирајте према предвиђеном оперативном систему.
Инсталирајте гнупг за увоз МонгоДБ јавног ГПГ кључа.
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
У монго љусци, покушајте да користите помоћ и прикажите дбс команде.
Креирајте Фласк апликацију
Користите наредбу испод да инсталирате фласк-аппбуилдер и монгоенгине.
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
Фласк Хелло Ворлд
Да бисте креирали свој први програм у фласкТуториалАпп, отворите датотеку виевс.пи у директоријуму апликације и додајте следећи код. Потражите изјаве за увоз дате у датотеци. Додајте ове изјаве ако већ нису присутне.
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
Сада идите на //лоцалхост:5000/хелло/ да бисте видели излаз упретраживач.
Отклањање грешака
Тренутно, развојни сервер не ради у режиму за отклањање грешака. Без режима за отклањање грешака, тешко је пронаћи грешке у изворном коду Фласк апликације.
Режим за отклањање грешака у Фласк-у резултира следећим:
- Режим за отклањање грешака активира аутоматско поновно учитавање. То значи да не морамо поново покренути развојни сервер након што извршимо промене у изворном коду апликације.
- Режим за отклањање грешака активира Питхон програм за отклањање грешака. Можемо да проверимо вредности променљивих током изузетка.
- Режим за отклањање грешака омогућава отклањање грешака у Фласк апликацији. Можемо проверити вредности различитих променљивих у сесијама отклањања грешака.
Зауставите развојни сервер ако је већ покренут. Можете користити ЦТРЛ + Ц или прекид са тастатуре да урадите исто.
Користите следећи код да омогућите режим за отклањање грешака и привремено покренете развојни сервер.
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"
Идите на //лоцалхост:5000/хелло/ и видећете да је апликација покренула изузетак. Прегледач приказује праћење стека, као што је приказано испод.
![](/wp-content/uploads/guides/iae5sr2a76-3.png)
Осим тога, погледајте конзолу на којој је покренут развојни сервер. Открићете да овај пут,промене у виев.пи се аутоматски откривају, а сервер за отклањање грешака се сам поново покреће. Сада не морамо ручно да га рестартујемо.
Конзола ће имати линије, као што је приказано испод. Морамо да забележимо ПИН за отклањање грешака за касније.
* 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-4.png)
Када је отворите, видећете да ће претраживач приказати упит за ПИН за отклањање грешака. Дајте ПИН за отклањање грешака и кликните на ОК.
![](/wp-content/uploads/guides/iae5sr2a76-5.png)
Када наставимо даље након давања ПИН-а за отклањање грешака, можемо приступити интерактивној љусци.
Приступамо љусци из прегледача и може да прегледа вредности променљивих да пронађе узрок изузетка и да на бољи начин обради грешку. Молимо погледајте један од примера приказаних на слици испод.
![](/wp-content/uploads/guides/iae5sr2a76-6.png)
Сада промените код у виев.пи, као што је приказано испод. Имајте на уму да смо коментарисали линију која је имала подигнут изузетак.
@expose("/") def hello(self): # raise Exception("A custom exception to learn DEBUG Mode") return "Hello, World! from Software Testing Help"
Тестирање Фласк апликације
Сада да напишемо наш први тест за Фласк апликацију коју развијамо. Прво, инсталирајте ПиТест. ПиТест је оквир за тестирање. Помаже нам да напишемо бољи код.
Штавише, само зато што можемо писати јединичне тестове док развијамо наше апликације, могуће је пратити ТДД приступ. ТДД је скраћеница од Тест-Дривен Девелопмент. У нашим наредним туторијалима оу овој серији, увек ћемо прво писати тестове и развијати наше погледе или моделе.
Инсталирајте ПиТест
pip install pytest
Сада креирајте директоријум који се зове тестови унутар директоријума апликације иу том креирајте датотеку под називом тест_хелло.пи. Хајде да напишемо наш први јединични тест да тестирамо наш поглед.
Копирајте следећи исечак кода и налепите га у тест_хелло.пи.
#!/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
Користите доњу питест команду за покретање тестови. ПиТест аутоматски прикупља тестове и приказује резултате на стандардном излазу.
![](/wp-content/uploads/guides/iae5sr2a76-7.png)
Креирајте ГитХуб радни ток
Користимо Гит Ацтионс да креирамо ЦИ/ЦД радни ток за нашу апликацију примера. Пратите доле наведене кораке за свој пројекат.
Корак 1: Идите до странице спремишта на ГитХуб-у. Кликните на Гит Ацтионс.
![](/wp-content/uploads/guides/iae5sr2a76-8.png)
Корак 2: Померите се према доле на страници и пронађите постојећи шаблон тока посла за Питхон пакет.
![](/wp-content/uploads/guides/iae5sr2a76-9.png)
Корак 3: Подесите ток рада Питхон пакета.
![](/wp-content/uploads/guides/iae5sr2a76-10.png)
Корак 4: Када се отвори конфигурација тока посла питхон-пацкаге.имл, ажурирајте је на основу датих додатних иамл вредности ознака.
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
Желимо да тестирамо нашу Фласк апликацију на најновијој Убунту Линук дистрибуцији. Поред оперативног система, желимо да покренемо наше тестове само користећи Питхон 3.7 и Питхон 3.8.
Корак 5: Урежите питхон-пацкаге.имл са ажурираним вредностима.
![](/wp-content/uploads/guides/iae5sr2a76-11.png)
Корак 6: Урезивање на претходној страници води нас до ГитАцтионс-апослови.
![](/wp-content/uploads/guides/iae5sr2a76-12.png)
Корак 7: [Опционално]
На страници Гитхуб Јобс за пример апликације са водичем, можемо да креирамо значку и место то у РЕАДМЕ.мд датотеци за приказ статуса израде.
Сада, кад год се промене унесу у главну грану, Гит Воркфлов, како је написано у питхон-пацкаге.имл ће бити праћен и покренут на Гит Ацтионс .
Закључак
У овом туторијалу покрили смо све основне концепте од предуслова до подешавања ЦИ/ЦД тока посла за веб апликацију развијену помоћу Фласк – оквира за веб развој заснован на Питхон-у.
Овај водич покрива све неопходне кораке као што су инсталирање Питхон-а, преузимање &амп; инсталирање Фласк-а, рад са Фласк-Аппбуилдер-ом, тестирање са ПиТест-ом, итд. да бисте започели са развојем веба користећи Питхон. Заједница за веб развој обично упоређује Фласк са другим популарним Питхон оквиром за веб развој који се зове Дјанго.
Објаснићемо ове разлике и упоредити ове оквире у једном од туторијала у овој серији.