Научите како да креирате РЕСТфул АПИ користећи Фласк и Постгрес, омогућавајући беспрекорну размену података између ваше апликације и спољних система.

Апликациони програмски интерфејси (АПИ) су критични део изградње и повезивања различитих система, омогућавајући вашим апликацијама да комуницирају и размењују податке са другим услугама.

Док развој позадинског дела укључује више од само писања АПИ-ја – он такође покрива писање пословне логике на страни сервера, дизајнирање ефикасног система архитектуре и друге кључне функције, читајте даље да бисте научили како да направите једноставан ЦРУД РЕСТ АПИ са Фласк-ом (лаки Питхон оквир) и Постгрес-ом база података.

Коришћење Фласк-а за прављење Бацкенд АПИ-ја

Фласк је лагана Питхон фрамеворк који пружа бројне функције за поједностављење писања позадинских АПИ-ја за веб клијенте написане коришћењем различитих технологија као што су Реацт и Ангулар.

Овде можете пронаћи изворни код овог пројекта ГитХуб спремиште.

Овај водич ће вас провести кроз писање а

РЕСТ АПИ који имплементира четири ЦРУД операције: креирање, читање, ажурирање и брисање да бисте управљали корисничким подацима ускладиштеним у Постгрес бази података.

Подесите Постгрес базу података

Да бисте започели, пређите на ЕлепхантСКЛ, решење за хостовање базе података засновано на облаку које обезбеђује платформу за креирање и управљање Постгрес базама података у облаку, регистрацију и пријаву на страницу са прегледом вашег налога.

Кликните Креирајте нову инстанцу дугме да бисте креирали нову инстанцу за своју апликацију.

Наведите назив своје инстанце и изаберите бесплатни план и на крају изаберите регион у којем ће инстанца бити хостована да бисте завршили процес подешавања.

Када се инстанца креира, идите на страницу са подешавањима и копирајте УРЛ базе података, користићете га за успостављање везе са базом података.

Подесите Фласк сервер

На свом терминалу направите фасциклу пројекта и промените тренутни директоријум у ту нову фасциклу.

Пре инсталирања Фласк-а, проверите да ли на свом рачунару користите Питхон верзију 3.6+. Ако не, потребно је да инсталирате најновију верзију Питхон верзија.

питхон --версион

Након тога, инсталирајте виртуаленв, за стварање изолованог виртуелног развојног окружења.

пип инсталл виртуаленв

Затим покрените наредбу испод да бисте креирали виртуелно окружење.

виртуаленв венв

На крају, активирајте виртуелно окружење.

# На Виндовс-у: 
.\венв\Сцриптс\ацтивате
# На Уник-у или МацОС-у:
извор венв/бин/активирај

Инсталирајте потребне пакете

У основном директоријуму фасцикле вашег пројекта, креирајте а Захтеви.ткт датотеку и додајте ове пакете.

пљоска
питхон-дотенв
псицопг2-бинари

Затим инсталирајте пакете.

пип инсталл -р Захтеви.ткт

Тхе псицопг2-бинари је Питхон библиотека која делује као међувера, која вам омогућава да успоставите везе са вашом Постгрес базом података и извршите различите операције базе података.

На крају, креирајте а .енв датотеку и налепите УРЛ своје базе података.

ДАТАБАСЕ_УРЛ= УРЛ ваше базе података

Креирајте Фласк сервер

На крају, креирајте ан апп.пи датотеку у основном директоријуму и додајте код испод.

увоз ос 
увоз псицопг2
из дотенв увоз лоад_дотенв
из пљоска увоз Фласк, захтев, јсонифи

лоад_дотенв()

апп = Фласк (__наме__)
урл = ос.гетенв(„ДАТАБАСЕ_УРЛ“)
веза = псицопг2.цоннецт (урл)

@апп.гет("/")
дефкућа():
повратак"Здраво Свете"

Овај код поставља инстанцу апликације Фласк. Затим креира везу са базом података наведеном у УРЛ стрингу и на крају поставља кућну руту која враћа стринг као одговор.

Креирајте РЕСТ АПИ који омогућава ЦРУД операције

Сада направите РЕСТ АПИ који имплементира четири ЦРУД операције.

Направите демо табелу

Креирајте табелу корисника унутар базе података.

У датотеци апп.пи додајте код у наставку.

ЦРЕАТЕ_УСЕРС_ТАБЛЕ = „КРЕИРАЈ ТАБЕЛУ АКО НЕ ПОСТОЈИ корисници (ид СЕРИЈСКИ ПРИМАРНИ КЉУЧ, назив ТЕКСТ);“

са веза:
са цоннецтион.цурсор() као курсор:
цурсор.екецуте (ЦРЕАТЕ_УСЕРС_ТАБЛЕ)

  • Овај код креира нову ПостгреСКЛ табелу под називом корисника са две колоне.
  • Користи метод повезивања псицопг2 да успостави везу са базом података и креира нови објекат курсора користећи веза.курсор метод који се користи за извршење СКЛ упити.

1. Дефинишите ПОСТ метод

Креирајте руту поста да бисте додали податке.

ИНСЕРТ_УСЕР_РЕТУРН_ИД = „ИНСЕРТ ИНТО усерс (наме) ВАЛУЕС (%с) РЕТУРНИНГ ид;“
@апп.роуте("/апи/усер", метходс=["ПОСТ"])
дефнаправи корисника():
подаци = рекуест.гет_јсон()
име = подаци["име"]
са веза:
са цоннецтион.цурсор() као курсор:
цурсор.екецуте (ИНСЕРТ_УСЕР_РЕТУРН_ИД, (име,))
усер_ид = цурсор.фетцхоне()[0]
повратак {"ид": ИД корисник, "име": име, "порука": ф"Корисник {наме} створена“.}, 201
  • Стринг СКЛ упита дефинише СКЛ наредбу која ће бити извршена помоћу цурсор.екецуте метод за уметање новог реда са именом корисника у корисника табела у бази података. Враћа новокреирани ИД корисника.
  • Тхе направи корисника функција узима име као параметар за складиштење у бази података док је курсор.фетцхоне метода се позива да преузме новокреирани ИД корисника. На крају, враћа се речник који садржи ИД и име новокреираног корисника, заједно са поруком која указује да је корисник успешно креиран.

2. Дефинишите ГЕТ метод

Дефинишите две руте за добијање: једну, за преузимање свих података у бази података, и две, за преузимање одређених података из базе података на основу ИД-а.

СЕЛЕЦТ_АЛЛ_УСЕРС = „СЕЛЕЦТ * ФРОМ усерс;“

@апп.роуте("/апи/усер", метходс=["ГЕТ"])
дефгет_алл_усерс():
са веза:
са цоннецтион.цурсор() као курсор:
цурсор.екецуте (СЕЛЕЦТ_АЛЛ_УСЕРС)
корисници = цурсор.фетцхалл()
ако корисници:
резултат = []
за корисник ин корисници:
ресулт.аппенд({"ид": корисник[0], "име": корисник[1]})
повратак јсонифи (резултат)
друго:
повратак јсонифи({"грешка": ф"Корисници нису пронађени."}), 404

@апп.роуте("/апи/усер/", метходс=["ГЕТ"])
дефгет_усер(ИД корисник):
са веза:
са цоннецтион.цурсор() као курсор:
цурсор.екецуте(„СЕЛЕЦТ * ФРОМ усерс ВХЕРЕ ид = %с“, (ИД корисник,))
корисник = цурсор.фетцхоне()
ако корисник:
повратак јсонифи({"ид": корисник[0], "име": корисник[1]})
друго:
повратак јсонифи({"грешка": ф"Корисник са ИД-ом {ИД корисник} није пронађен."}), 404

  • Ова прва АПИ рута обрађује ХТТП ГЕТ захтеве за преузимање свих корисника из базе података. Он преузима све кориснике из базе података и враћа резултате у ЈСОН формату у одговору.
  • Ова друга АПИ рута обрађује ХТТП ГЕТ захтеве за преузимање података за одређеног корисника из базе података. То узима у ИД корисник као параметар, преузима податке корисника из базе података и враћа резултате у ЈСОН формату у одговору.

3. Дефинишите метод ПУТ

Креирајте пут пут да бисте ажурирали ускладиштене податке у бази података.

@апп.роуте("/апи/усер/", метходс=["ПУТ"])
дефупдате_усер(ИД корисник):
подаци = рекуест.гет_јсон()
име = подаци["име"]
са веза:
са цоннецтион.цурсор() као курсор:
цурсор.екецуте (УПДАТЕ_УСЕР_БИ_ИД, (име, усер_ид))
ако цурсор.ровцоунт == 0:
повратак јсонифи({"грешка": ф"Корисник са ИД-ом {ИД корисник} није пронађен."}), 404
повратак јсонифи({"ид": ИД корисник, "име": име, "порука": ф"Корисник са ИД-ом {ИД корисник} ажуриран."})
  • Тхе упдате_усер функција узима параметар ИД корисника као улаз и користи га за ажурирање имена наведеног корисника у бази података.
  • Ако је операција ажурирања успешна, враћа ЈСОН објекат са ажурираним ИД-ом корисника, именом и поруком о успеху у одговору.

4. Дефинишите методу ДЕЛЕТЕ

Имплементирајте руту за брисање да бисте избрисали сачуване податке одређеног корисника у бази података.

@апп.роуте("/апи/усер/", метходс=["ИЗБРИШИ"])
дефделете_усер(ИД корисник):
са веза:
са цоннецтион.цурсор() као курсор:
цурсор.екецуте (ДЕЛЕТЕ_УСЕР_БИ_ИД, (усер_ид,))
ако цурсор.ровцоунт == 0:
повратак јсонифи({"грешка": ф"Корисник са ИД-ом {ИД корисник} није пронађен."}), 404
повратак јсонифи({"порука": ф"Корисник са ИД-ом {ИД корисник} избрисан."})
  • Ова АПИ рута обрађује функционалност брисања одређеног корисника из базе података на основу њиховог ИД-а. Ако корисник није пронађен, враћа статусни код 404 са поруком о грешци. Међутим, ако је операција брисања успешна, она враћа ЈСОН објекат са поруком о успеху у одговору.

Писање РЕСТ АПИ-ја са фласком

Овај водич показује како да користите Фласк и Постгрес да направите једноставан ЦРУД РЕСТ АПИ поред тога како да успостави везу са базом података и изврши различите СКЛ упите за читање и уписивање података у а база података. Сада можете да креирате једноставан РЕСТ АПИ који може да обрађује четири ЦРУД операције потребне у било којој веб апликацији.

Без обзира да ли правите једноставан блог или сложену веб апликацију, Фласк и Постгрес нуде моћне функције и могућности потребне за креирање робусног позадинског система. Алтернативно, можете користити друге технологије као што су ФастАПИ и МонгоДБ за прављење РЕСТфул АПИ-ја.