Propojení baňky s databázemi SQL, jako jsou PostgreSQL a SQLite, je hračka. Rámec se však dokonale synchronizuje s databázemi NoSQL, jako je CouchDB. A jako další výhodu můžete svá data snadno dotazovat, když používáte CouchDB s Flaskem.
Jste připraveni provést změnu pomocí NoSQL jako CouchDB ve vaší aplikaci Flask? Zde je návod, jak nastavit CouchDB na místním počítači a propojit jej s Flaskem.
Co je CouchDB?
CouchDB je databáze NoSQL, kterou v současné době vlastní Apache Software Foundation. Software, napsaný společností Erlang, byl poprvé vydán v roce 2005.
Na rozdíl od běžných databází propojených s tabulkami, na které jste s největší pravděpodobností zvyklí, je CouchDB nerelační systém pro správu databází, který ukládá data jako nezpracované JSON.
CouchDB je neblokující, takže při zadávání dat databázi nezamkne. Jednou ze silných stránek CouchDB je, že ke čtení a zápisu dat používá zásady řízení souběžnosti s více verzemi. Umožňuje tedy simultánní vstupy od více uživatelů bez rušení stávající strukturou dat v databázi.
CouchDB je tedy během dotazů rychlý a snadno se s ním pracuje při použití asynchronních metod. To znamená, že to není o nic lepší než jeho protějšek SQL. Každá technologie má svá pro a proti.
Nastavení CouchDB
Chcete -li začít používat CouchDB, stáhněte si a nainstalujte kompatibilní verzi z Oficiální web CouchDB.
A pokud vám tato nejnovější verze nefunguje, pokračujte na Archiv CouchDB a stáhněte si verzi 1.6.1, což je dřívější verze CouchDB.
Jakmile nainstalujete CouchDB, spusťte jej na počítači jako jakoukoli jinou desktopovou aplikaci.
Otevřete prohlížeč. Poté spusťte server CouchDB vložením následujícího do adresního řádku:
http://localhost: 5984/_utils/index.html
Nastavte Python a baňku
Tento tutoriál však předpokládá, že již máte na svém počítači nainstalován Python. V opačném případě přejděte na python.org a nainstalujte si do počítače nejnovější verzi Pythonu.
Jakmile nastavíte CouchDB, vytvořte kořenovou složku projektu. Poté otevřete příkazový řádek do tohoto adresáře a vytvořte soubor Virtuální prostředí Pythonu.
Nainstalujte nejnovější verzi baňky do virtuálního prostoru pomocí pip:
pip install baňka
Propojte baňku s CouchDB
Chcete -li začít používat CouchDB s aplikací Flask, nainstalujte si Baňka-CouchDB, runtime balíček pro propojení databáze s Flaskem.
Udělat toto:
pip install Flask-CouchDB
Jakmile nainstalujete Baňka-CouchDB úspěšně vytvořte soubor app.py soubor v této kořenové složce. Podobně vytvořte a database.py soubor - toto zpracovává vytváření vaší databáze.
Otevřeno database.py a importujte následující balíčky:
ze serveru importu couchdb
Dále vytvořte svou databázi ve stejném souboru pomocí následujícího bloku kódu:
ze serveru importu couchdb
server = Server ()
db = server.create ('muocouch')
Vykonat database.py prostřednictvím CLI. Poté otevřete nebo obnovte místní server CouchDB prostřednictvím prohlížeče, jako jste to udělali dříve. Nyní byste měli vidět databázi (muocouch v tomto případě) uvedené v CouchDB.
Příbuzný:Jak spustit skript Pythonu
Poznámka: Ujistěte se, že pro databáze používáte konvenci pojmenování malými písmeny, protože CouchDB nemusí akceptovat velká nebo smíšená písmena.
Uložte svá první data CouchDB pomocí baňky
Účelem jakékoli databáze je nakonec ukládání dat. Jakmile máte databázi v CouchDB, můžete do ní hned začít ukládat data z vaší aplikace Flask.
Chcete -li začít, otevřete app.py a importujte následující balíčky:
z baňky import baňky
ze serveru importu couchdb
z importovaného dokumentu flaskext.couchdb
Dále vytvořte aplikaci Flask a instanci serveru CouchDB:
app = Flask (__name__, static_url_path = '/static')
app.debug = True
server = Server ()
Nyní uložíme některé uživatelské vstupy do CouchDB:
@app.route ('/', methods = ['GET', 'POST'])
def register ():
uživatel = {
"username": "mediální web",
"email": "[email protected]",
"heslo": "šifrovaná data"
}
db = server ['muocouch'] #vyberte databázi
doc_id, doc_rev = db.save (uživatel) #uložte svá data do databáze
vrátit se "Vaše data by nyní měla být v databázi
"
Pokud chcete, můžete svůj server Flask před spuštěním nastavit do vývojového režimu.
Chcete -li to provést, spusťte pomocí příkazového řádku následující příkaz:
sada FLASK_ENV = vývoj
Všimněte si toho, že nastavení režimu serveru je volitelné. Díky tomu je ladění kódu pouze bezproblémové.
Ale bez ohledu na nastavení režimu serveru, zde je návod, jak spustit server Flask pomocí CMD:
běh baňky
Flask však ve výchozím nastavení nastaví váš port localhost: 5000. Nyní byste měli vidět zprávu v H2 označte, jakmile načtete tuto adresu prostřednictvím svého prohlížeče.
Ověřujte data a kontrolujte duplikáty pomocí dotazů CouchDB
Chcete -li to dále standardizovat, můžete pomocí dotazů ověřit vstupy a zabránit duplicitám ve vaší databázi. Dotazování na CouchDB se trochu liší od toho, jak to děláte s databázemi SQL.
CouchDB používá k dotazování na data z databáze to, čemu říká „zobrazení JavaScriptu“. Naštěstí je to poměrně jednoduché.
Než budete postupovat dále, vypadá základní zobrazení dotazu CouchDB takto:
map_func = funkce (doc)
{emit (doc.doc_rev, doc); }
myQuery = [docType] .query (db, map_func, Redu_fun = None)
Nyní použijeme výše uvedený kód prakticky:
#Vytvořte objektový model dokumentu s názvem „Uživatelé:"
třída Uživatel (dokument):
doc_type = 'Uživatel'
@app.route ('/', methods = ['GET', 'POST'])
def register ():
uživatel = {
"username": "mediální web",
"email": "[email protected]",
"heslo": "šifrovaná data"
}
db = server ['muocouch'] #vyberte databázi
# Pomocí funkce zobrazení načtěte data z CouchDB
map_func = funkce (doc)
{emit (doc.doc_rev, doc); }
# Získejte všechna data spuštěním sady dotazů
myQuery = User.query (db, map_func, Redu_fun = None, reverse = True)
q = [i ['uživatelské jméno'] pro i v myQuery] # Vymažte všechna uživatelská jména z databáze
q2 = [i ['e -mail'] pro i v myQuery] # Vymažte všechny e -mailové adresy z databáze
q3 = q+q2 # Sloučí oba dotazy do jednoho seznamu
tisk (q3)
vrátit se "Vaše data jsou nyní v databázi
"
Výše uvedený kód používá Uživatel třída pro dotaz na data načtená funkcí zobrazení. Věnujte velkou pozornost parametrům v sadě dotazů (myQuery).
Tisk q3, jak jste udělali výše, by nyní měla v příkazovém řádku zobrazit všechna uživatelská jména a e -mailové adresy v databázi.
Tento dotaz tedy můžete použít k ověření vstupů uživatelů:
pokud ne (uživatel ['uživatelské jméno'] v q3 nebo uživatel ['email'] v q3):
#uložte svá data do databáze, pokud neexistují
doc_id, doc_rev = db.save (uživatel)
vrátit se "Úspěšně zaregistrován
"
jiný:
vrátit se "Uživatelské jméno nebo e -mail existuje
"
Obnovením prohlížeče se zobrazí jiný při každém pokusu o zadání uživatelského jména nebo e -mailu, který je již v databázi. A pokud zadáváte nový, úspěšně ukládá vaše data spuštěním -li stav.
Příbuzný:Jak používat prohlášení Python if
A je to! Právě jste vytvořili svou první databázi NoSQL pomocí Flask-CouchDB.
Přestože se vytváření a dotazování databází v CouchDB točí kolem příkladů, které jsme zde zdůraznili, můžete funkce Flasku prozkoumat dále. Vstupní pole můžete například roztočit pomocí wtforms a označte duplikáty pomocí Flaskovy zprávy blikat.
Můžete dokonce předat svůj dotaz jQuery JavaScriptu k ověření vstupů a asynchronní kontrole duplikátů.
Je CouchDB lepší než databáze SQL?
Použití CouchDB nebo jakékoli jiné databáze NoSQL s Flaskem nebo jinou programovací technologií závisí na vašich preferencích. Při řešení strukturovaných dat a surových médií to ale přijde vhod.
To znamená, že než se rozhodnete, možná se budete chtít podívat na rozdíly mezi databázemi NoSQL a SQL, které vám pomohou rozhodnout, která z nich je vhodná pro váš projekt.
Výběr typu databáze může být složitý. Měli byste zvolit SQL nebo NoSQL?
Číst dále
- Programování
- databáze
- Programování
- Návody na kódování
Idowu je zapálený pro cokoli chytrého a produktivního. Ve svém volném čase si hraje s kódováním a když se nudí, přepne na šachovnici, ale také se rád jednou za čas odpoutá od rutiny. Jeho vášeň ukazovat lidem cestu kolem moderních technologií ho motivuje psát více.
Přihlaste se k odběru našeho zpravodaje
Připojte se k našemu zpravodaji a získejte technické tipy, recenze, bezplatné elektronické knihy a exkluzivní nabídky!
Kliknutím sem se přihlásíte k odběru