Prepojenie banky s databázami SQL, ako sú PostgreSQL a SQLite, je hračka. Rámec sa však perfektne synchronizuje s databázami NoSQL, ako je CouchDB. A čo je ďalšou výhodou, pri použití CouchDB s bankou môžete svoje údaje jednoducho vyhľadávať.

Ste pripravení vykonať zmenu pomocou aplikácie NoSQL ako CouchDB vo svojej aplikácii Flask? Tu je návod, ako nastaviť CouchDB na miestnom počítači a pripojiť ho k banke Flask.

Čo je CouchDB?

CouchDB je databáza NoSQL, ktorú v súčasnosti vlastní Apache Software Foundation. Softvér, ktorý bol napísaný spoločnosťou Erlang, bol prvýkrát vydaný v roku 2005.

Na rozdiel od bežných databáz prepojených s tabuľkami, na ktoré ste pravdepodobne zvyknutí, CouchDB je nerelačný systém správy databáz, ktorý ukladá údaje ako nespracované JSON.

CouchDB je neblokujúci, takže počas zadávania údajov databázu nezamkne. Jednou zo silných stránok CouchDB je to, že používa na čítanie a zápis údajov viacstupňovú politiku riadenia súbežnosti. Umožňuje teda simultánne vstupy od viacerých používateľov bez rušenia z existujúcej štruktúry údajov v databáze.

instagram viewer

CouchDB je teda rýchly počas dotazov a ľahko sa s ním pracuje pri použití asynchrónnych metód. To znamená, že to nie je o nič lepšie ako jeho náprotivok v jazyku SQL. Každá technológia má svoje pre a proti.

Nastavenie CouchDB

Ak chcete začať používať CouchDB, stiahnite si a nainštalujte kompatibilnú verziu z Oficiálna webová stránka CouchDB.

A ak vám táto najnovšia verzia nefunguje, pokračujte na Archív CouchDB a stiahnite si verziu 1.6.1, ktorá je staršou verziou CouchDB.

Akonáhle si nainštalujete CouchDB, spustite ho na počítači ako akúkoľvek inú aplikáciu pre stolné počítače.

Otvorte prehliadač. Potom spustite server CouchDB tak, že do panela s adresou vložíte nasledujúce:

http://localhost: 5984/_utils/index.html

Nastavte Python a banku

Tento tutoriál však predpokladá, že Python už máte vo svojom počítači nainštalovaný. V opačnom prípade choďte na python.org a nainštalujte si do počítača najnovšiu verziu Pythonu.

Po nastavení CouchDB vytvorte koreňový priečinok projektu. Potom otvorte príkazový riadok do tohto adresára a vytvorte súbor Virtuálne prostredie Python.

Nainštalujte najnovšiu verziu banky do virtuálneho priestoru pomocou pip:

pip install bank

Pripojte banku s CouchDB

Ak chcete začať používať CouchDB s aplikáciou Flask, nainštalujte si Flask-CouchDB, runtime balík na prepojenie databázy s Flaskom.

Urobiť toto:

pip install Flask-CouchDB

Hneď po inštalácii Flask-CouchDB úspešne vytvorte súbor app.py súbor v tomto koreňovom priečinku. Podobne vytvorte a database.py súbor - toto sa stará o vytváranie databázy.

Otvorené database.py a importujte nasledujúce balíky:

zo servera importu couchdb

Potom vytvorte svoju databázu v tom istom súbore pomocou nasledujúceho bloku kódu:

zo servera importu couchdb
server = server ()
db = server.create ('muocouch')

Vykonať database.py prostredníctvom CLI. Potom vo svojom prehliadači otvorte alebo obnovte lokálny server CouchDB, ako ste to urobili predtým. Teraz by ste mali vidieť databázu (muocouch v tomto prípade) uvedené v CouchDB.

Súvisiace:Ako spustiť skript Python

Poznámka: Zaistite, aby ste pre databázy používali malú konvenciu pomenovania, pretože CouchDB nemusí akceptovať veľké alebo zmiešané písmená.

Uložte svoje prvé údaje CouchDB pomocou banky

Nakoniec, účelom akejkoľvek databázy je ukladanie údajov. Keď máte databázu v CouchDB, môžete do nej ihneď začať ukladať údaje z aplikácie Flask.

Ak chcete začať, otvorte app.py a importujte nasledujúce balíky:

z importu banky Banka
zo servera importu couchdb
z importovaného dokumentu flaskext.couchdb

Ďalej vytvorte aplikáciu Flask a inštanciu servera CouchDB:

app = Flask (__name__, static_url_path = '/static')
app.debug = Pravda
server = server ()

Teraz uložme niektoré vstupy používateľov do CouchDB:

@app.route ('/', methods = ['GET', 'POST'])
def register ():
užívateľ = {
"užívateľské meno": "mediálna stránka",
"email": "[email protected]",
"heslo": "šifrované údaje"
}
db = server ['muocouch'] #vyberte databázu
doc_id, doc_rev = db.save (užívateľ) #uložte svoje údaje do databázy
vrátiť "

Vaše údaje by teraz mali byť v databáze

"

Ak chcete, môžete svoj server Flask pred spustením nastaviť do vývojového režimu.

Ak to chcete urobiť, spustite nasledujúci príkaz prostredníctvom svojho CLI:

sada FLASK_ENV = vývoj

Upozorňujeme, že nastavenie režimu servera je voliteľné. Vďaka tomu je ladenie kódu iba bezproblémové.

Bez ohľadu na nastavenie režimu servera však spustíte server Flask pomocou CMD takto:

fľaškový beh

Banka však predvolene nastaví váš port localhost: 5 000. Teraz by ste mali vidieť správu v H2 označte po načítaní tejto adresy prostredníctvom svojho prehliadača.

Overte údaje a skontrolujte duplikáty pomocou dotazov CouchDB

Ak to chcete ďalej štandardizovať, môžete použiť dotazy na validáciu vstupov a zabránenie duplikátom vo vašej databáze. Dotaz na CouchDB je trochu odlišný od toho, ako to robíte s databázami SQL.

CouchDB používa to, čo nazýva „zobrazenia JavaScript“, na dopytovanie údajov z databázy. Našťastie je to relatívne jednoduché.

Predtým, ako budete pokračovať ďalej, vyzerá základné zobrazenie dotazu CouchDB takto:

map_func = funkcia (dokument) 
{emit (doc.doc_rev, doc); }
myQuery = [docType] .query (db, map_func, Redu_fun = žiadny)

Teraz použijeme vyššie uvedený kód prakticky:

#Vytvorte objektový model dokumentu s názvom „Používatelia:"
užívateľ triedy (dokument):
doc_type = 'Používateľ'
@app.route ('/', methods = ['GET', 'POST'])
def register ():
užívateľ = {
"užívateľské meno": "mediálna stránka",
"email": "[email protected]",
"heslo": "šifrované údaje"
}
db = server ['muocouch'] #vyberte databázu
# Pomocou funkcie zobrazenia načítajte údaje z CouchDB
map_func = funkcia (dokument)
{emit (doc.doc_rev, doc); }
# Získajte všetky údaje spustením sady dotazov
myQuery = User.query (db, map_func, Redu_fun = None, reverse = True)
q = [i ['užívateľské meno'] pre i v myQuery] # Vytlačte všetky používateľské mená z databázy
q2 = [i ['email'] pre i v myQuery] # Vytlačte všetky e -mailové adresy z databázy
q3 = q+q2 # Zlúčte oba dopyty do jedného zoznamu
tlač (q3)
vrátiť "

Vaše údaje sú teraz v databáze

"

Vyššie uvedený kód používa príponu Používateľ triedy na dotazovanie údajov načítaných funkciou zobrazenia. Venujte veľkú pozornosť parametrom v rámci sady dotazov (myQuery).

Tlač q3, ako ste urobili vyššie, by teraz mali v príkazovom riadku zobrazovať všetky používateľské mená a e -mailové adresy v databáze.

Tento dotaz teda môžete použiť na validáciu vstupov používateľov:

ak nie (používateľ ['používateľské meno'] v 3. štvrťroku alebo používateľ ['e -mail'] v 3. štvrťroku):
#uložte svoje údaje do databázy, ak neexistujú
doc_id, doc_rev = db.save (používateľ)
vrátiť "

Úspešne zaregistrovaný

"
inak:
vrátiť "

Používateľské meno alebo e -mail existuje

"

Obnovením prehliadača sa vráti súbor inak pri každom pokuse o vloženie používateľského mena alebo e -mailu, ktorý už je v databáze. A ak zadávate nový, úspešne uloží vaše údaje spustením súboru keby podmienkou.

Súvisiace:Ako používať vyhlásenie Python if

To je všetko! Práve ste vytvorili svoju prvú databázu NoSQL pomocou Flask-CouchDB.

Aj keď sa vytváranie a dopytovanie databáz v CouchDB točí okolo príkladov, ktoré sme tu zdôraznili, môžete funkcie Flaska skúmať ďalej. Vstupné polia môžete napríklad roztočiť pomocou wtforms a označte duplikáty pomocou správy od Flaska blesk.

Dokonca môžete svoj dotaz odoslať do jQuery JavaScriptu na overenie vstupov a asynchrónnu kontrolu duplikátov.

Je CouchDB lepší ako databázy SQL?

Použitie CouchDB alebo akejkoľvek inej databázy NoSQL s Flask alebo akoukoľvek inou programovacou technológiou závisí od vašich preferencií. Pri riešení bezštruktúrnych údajov a nespracovaných médií však príde vhod.

To znamená, že predtým, ako sa rozhodnete, by ste sa mali pozrieť na rozdiely medzi databázami NoSQL a SQL, aby vám pomohli rozhodnúť sa, ktorá z nich je vhodná pre váš projekt.

zdieľamTweetE -mail
SQL vs. NoSQL: Aká je najlepšia databáza pre váš ďalší projekt?

Výber typu databázy môže byť zložitý. Mali by ste zvoliť SQL alebo NoSQL?

Čítajte ďalej

Súvisiace témy
  • Programovanie
  • databázy
  • Programovanie
  • Návody na kódovanie
O autorovi
Idowu Omisola (94 publikovaných článkov)

Idowu je zanietený pre čokoľvek, čo sa týka inteligentných technológií a produktivity. Vo svojom voľnom čase sa hrá s kódovaním a keď sa nudí, prejde na šachovnicu, ale tiež sa rád z času na čas odtrhne od rutiny. Jeho vášeň ukazovať ľuďom cestu okolo moderných technológií ho motivuje písať viac.

Viac od Idowu Omisola

prihlásiť sa ku odberu noviniek

Pripojte sa k nášmu bulletinu a získajte technické tipy, recenzie, bezplatné elektronické knihy a exkluzívne ponuky!

Kliknutím sem sa prihlásite na odber