Псицопг2

Водич за Псицопг2

Водич за Псицопг2

Водич за Питхон, ПостгреСКЛ и Псицопг2

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

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

Можете да инсталирате Псицопг2 путем доње наредбе пип терминала.

$ пип инсталирајте псицопг2

Приликом инсталирања требали бисте видети излаз терминала испод.

Прикупљање псицопг2
Преузимање псицопг2-2.7.3.2-цп27-цп27м-
мацоск_10_6_интел.мацоск_10_9_интел.мацоск_10_9_к86_64.мацоск_10_10_интел.мацоск_10
_10_к86_64.вхл (1.7 МБ)
100% | ████████████████████████████████ | 1.7МБ 397кБ / с
Инсталирање прикупљених пакета: псицопг2
Успешно инсталиран псицопг2-2.7.3.2
Брадлеис-Мини: ~ БрадлеиПаттон $

Да бисте увезли пакет Псицопг2 у вашу Питхон апликацију, користите доњи ред кода.

увоз псицопг2

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

деф гет_дата (симболи, датум_почетка, датум_конца):
панел = подаци.ДатаРеадер (симболи, 'иахоо', датум почетка, крајњи датум)
дф = панел ['Затвори']
дф.колоне = мапа (стр.доњи, дф.колоне)
хд = листа (дф)
принт дф.глава()
принт хд
ретурн дф

Сада ћу поставити неки код за одржавање који се користи за покретање водича. Ове две методе ће се користити за позивање метода Псицопг2 које креирамо.

деф туториал_рун ():
симболи = ['ШПИЈУНИРАЊЕ', 'ААПЛ', 'ГООГ']
дф = гет_дата (симболи, '03.01.2006', '31.12.2017')
ако је __наме__ == "__главно__":
туториал_рун ()

Да бисмо се повезали са базом података ПостгреСКЛ, мораћемо да додамо доњу методу. Три \ Екцепт пружа неко руковање грешкама у случају да локална база података није покренута или се нетачни параметри везе проследе у базу података. Метода повезивања у библиотеци Псицопг2 повезује се са базом података параметрима прослеђеним у низу везе. Ваши параметри за дбнаме, корисника и лозинку могу се разликовати. Ако веза из неког разлога не успе, порука о грешци биће записана на конзолу. Ова метода враћа објект везе назад на нашу методу позива где се може користити за даље операције базе података.

деф цоннецт ():
цонс = "дбнаме = 'туториал' усер =" постгрес "хост =" лоцалхост "пассворд =" пассворд ""
покушати:
цонн = псицопг2.повезати (контра)
испис "Повезано"
осим:
принт "Не могу да се повежем са базом података"
ретурн цонн

Једном када успоставимо везу са ПостгреСКЛ базом података, можемо да учитамо податке из методе гет_дата () у нашу базу података. Псицопг2 и панде чине ово врло једноставним поступком.

Први ред дефинише метод који би панде требало да користе за повезивање са базом података како би копирали ДатаФраме. Навешћете исте параметре као и ваш начин повезивања. Други ред кода наставља ДатаФраме у ПостгреСКЛ базу података методом то_скл ().

деф цреате_табле (табела, дф):
енгине = цреате_енгине ('постгрескл + псицопг2: // постгрес: [емаил протецтед]: 5432 / туториал')
дф.то_скл (табела, мотор, ако_постоји = 'заменити')

Кратки увид у наш ПостгреСКЛ пгАдмин терминал показује да је код успешно учитао ДатаФраме у табелу „затвори“. Сад кад имамо неке податке учитане у нашу базу података. Псицопг можемо користити за покретање неких упита о подацима. Метод у наставку је направљен да преузме везу успостављену у нашој првој методи и покрене упит у нашој бази података ПостгреСКЛ. Да бисмо креирали 4 СКЛ објекта потребно је да додамо још једну изјаву о увозу.

из псицопг2 импорт скл

Да би створио динамичке СКЛ наредбе, псицопг користи форматирање низа за попуњавање варијабли у низ помоћу оператора% с и .

ПостргреСКЛ разликује велика и мала слова. У методи гет_дата () приморали смо заглавља колона на мала слова. Индекс није био укључен у ово упутство. Да бисмо у упит проследили заглавље велике колоне „Подаци“, треба да га проследимо ПостгреСКЛ-у у двоструким наводницима. Да бисте то урадили у низу на Питхону, потребно је послати излазни знак „\“ пре двоструких наводника.

Можемо заменити „% с“ у низу користећи доњу синтаксу форматирања питхон низа. Ово замењује% с нашим датумским параметром дт.

Да бисте извршили СКЛ упит који је креиран. Затим га требате проследити курзору .метода екецуте (). Позивањем .фетцхалл (), враћате резултате упита. Када се одштампају на конзоли, можете приказати резултате.

деф гет_ров (дт, цонн):
цр = повез.курсор ()
упит = скл.СКЛ ("СЕЛЕЦТ аапл фром цлосе ВХЕРЕ" Дате "= '% с'"% дт)
цр.изврши (упит)
штампа цр.фетцхалл ()

Да бисмо покренули ову функцију, додамо доњи ред кода методи туториал_рун (). Требали бисте добити сличне резултате као у наставку.

гет_ров ("29.12.2017", повезивање)

У следећој методи користићемо методе обликовања низа за прослеђивање више параметара у наш упит. Овај упит ће имати датум и три колоне. Поред употребе оператора% с, користићемо и оператор да променљиве низа спојимо у низ и убризгамо их у наш упит упита. Наш низ упита сада користи спој испод са сепаратором „,“ за прослеђивање вишеструких имена колона у наш упит.

деф гет_цолс (дт, цол1, цол2, цол3, цонн):
цр = повез.курсор ()
упит = скл.СКЛ ("СЕЛЕЦТ од затварања ВХЕРЕ" Дате "= '% с'"% дт).формат (
скл.СКЛ (',').придружити ([скл.Идентификатор (цол1), скл.Идентификатор (цол2), скл.Идентификатор (цол3)]))
цр.изврши (упит)
штампа цр.фетцхалл ()

Да бих користио нашу нову методу, додаћу следећи ред нашој методи туториал_рун (). Резултате бисте требали видети испод.

гет_цолс ("2017-12-29", "аапл", "шпијун", "гоог", цонн)

Следећи метод који напишемо користиће две замене низа за повлачење свих података у нашој табели, са изузетком нашег индекса. Ова метода се надовезује на нашу претходну методу додавањем другог записа у замену заграде „1“. Овај пут заграде су нумерисане тако да се замењују у коду појма формата налога. Наш нови метод спаја параметре три колоне помоћу сепаратора зареза. Поред тога, други параметар у методи формата је променљива табеле. Низ упита се затим конструише заменом заграда параметарима у методу форматирања редом. То је 0 = колоне и 1 = назив табеле.

деф гет_таб (табле, цол1, цол2, цол3, цонн):
цр = повез.курсор ()
упит = скл.СКЛ („СЕЛЕЦТ 0 фром 1“).формат (
скл.СКЛ (',').придружити ([скл.Идентификатор (цол1), скл.Идентификатор (цол2),
скл.Идентификатор (цол3)]), скл.Идентификатор (табела)
цр.изврши (упит)
штампа цр.фетцхалл ()

Да бих користио нашу нову методу, додаћу следећи ред нашој методи туториал_рун (). Резултате бисте требали видети испод.

гет_таб ("затвори", "аапл", "шпијун", "гоог", повезивање)

Постоји много више метода за истраживање у библиотеци псицопг. Ово би требало да започнете са добрим разумевањем психоппг функција. У наставку сам навео још неких ресурса на страницама документације који ће вам омогућити шире истраживање библиотеке.

Фулл Цоде

увоз псицопг2
из псицопг2 импорт скл
увези пандас_датареадер као податке
деф гет_дата (симболи, датум_почетка, датум_конца):
панел = подаци.ДатаРеадер (симболи, 'иахоо', датум почетка, крајњи датум)
дф = панел ['Затвори']
дф.колоне = мапа (стр.доњи, дф.колоне)
хд = листа (дф)
принт дф.глава()
принт хд
ретурн дф
деф цоннецт ():
цонс = "дбнаме = 'туториал' усер =" постгрес "хост =" лоцалхост "пассворд =" пассворд ""
покушати:
цонн = псицопг2.повезати (контра)
испис "Повезано"
осим:
принт "Не могу да се повежем са базом података"
ретурн цонн
деф цреате_табле (табела, дф):
енгине = цреате_енгине ('постгрескл + псицопг2: // постгрес: [емаил протецтед]: 5432 / туториал')
дф.то_скл (табела, мотор, ако_постоји = "замени")
деф гет_ров (дт, цонн):
цр = повез.курсор ()
упит = скл.СКЛ ("СЕЛЕЦТ аапл фром цлосе ВХЕРЕ" Дате "= '% с'"% дт)
цр.изврши (упит)
штампа цр.фетцхалл ()
деф гет_цолс (дт, цол1, цол2, цол3, цонн):
цр = повез.курсор ()
упит = скл.СКЛ ("СЕЛЕЦТ од затварања ВХЕРЕ" Дате "= '% с'"% дт).формат (
скл.СКЛ (',').придружити ([скл.Идентификатор (цол1),
скл.Идентификатор (цол2), скл.Идентификатор (цол3)]))
цр.изврши (упит)
штампа цр.фетцхалл ()
деф гет_таб (табле, цол1, цол2, цол3, цонн):
цр = повез.курсор ()
упит = скл.СКЛ („СЕЛЕЦТ 0 фром 1“).формат (
скл.СКЛ (',').придружити ([скл.Идентификатор (цол1), скл.Идентификатор (цол2),
скл.Идентификатор (цол3)]), скл.Идентификатор (табела)
цр.изврши (упит)
штампа цр.фетцхалл ()
деф туториал_рун ():
цонн = цоннецт ()
симболи = ['ШПИЈУНИРАЊЕ', 'ААПЛ', 'ГООГ']
дф = гет_дата (симболи, '03.01.2006', '31.12.2017')
цреате_табле ("затвори", дф)
гет_ров ("29.12.2017", повезивање)
гет_цолс ("2017-12-29", "аапл", "шпијун", "гоог", цонн)
гет_таб ("затвори", "аапл", "шпијун", "гоог", повезивање)
ако је __наме__ == "__главно__":
туториал_рун ()

Референце

инитд.орг / псицопг
инитд.орг / псицопг / доцс / инсталл.хтмл
хттп: // инитд.орг / псицопг / доцс / скл.хтмл
вики.постгрескл.орг / вики / Псицопг2_Туториал

Како инсталирати и играти Доом на Линук-у
Увод у Доом Доом серија настала је 90-их година након објављивања оригиналног Доом-а. То је био тренутни хит и од тог времена надаље серија игара је д...
Вулкан за кориснике Линука
Са сваком новом генерацијом графичких картица видимо да програмери игара помичу границе графичке верности и долазе на корак од фотореализма. Али упрко...
ОпенТТД вс Симутранс
Стварање сопствене симулације превоза може бити забавно, опуштајуће и изузетно примамљиво. Због тога морате да испробате што више игара како бисте про...