Jak propojit aplikaci Flask s CouchDB: databází NoSQL

Jak propojit aplikaci Flask s CouchDB: databází NoSQL

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 Python na svém počítači nainstalován. 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 :

jak hrát hry pro windows na android
pip install flask

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:

from couchdb import Server

Dále vytvořte svou databázi ve stejném souboru pomocí následujícího bloku kódu:

from couchdb import Server
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:

from flask import Flask
from couchdb import Server
from flaskext.couchdb import Document

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():
user = {
'username':'media site',
'email':'justmail@gmail.com',
'password':'encrypteddata'
}
db = server['muocouch'] #select the database
doc_id, doc_rev = db.save(user) #store your data in th database
return '

Your data should now be in the database

'

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:

set FLASK_ENV=development

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:

flask run

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 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 = '''function(doc)
{ emit(doc.doc_rev, doc); }'''
myQuery = [docType].query(db, map_func, reduce_fun=None)

Nyní použijeme výše uvedený kód prakticky:

#Create a document object model called ' Users :'
class User(Document):
doc_type = 'User'
@app.route('/', methods=['GET', 'POST'])
def register():
user = {
'username':'media site',
'email':'justmail@gmail.com',
'password':'encrypteddata'
}
db = server['muocouch'] #select the database
# Use the view function to fetch your data from CouchDB
map_func = '''function(doc)
{ emit(doc.doc_rev, doc); }'''
# Get all the data by running a query set
myQuery = User.query(db, map_func, reduce_fun=None, reverse=True)
q = [i['username'] for i in myQuery] # Loop out all the usernames from the database
q2 = [i['email'] for i in myQuery] # Loop out all the email addresses from the database
q3 = q+q2 # Merge both queries into a single list
print(q3)
return '

Your data is now in the database

'

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ů:

if not (user['username'] in q3 or user['email'] in q3):
#store your data into the database if itdoesn't exist
doc_id, doc_rev = db.save(user)
return '

Registered successfully

'
else:
return '

Username or email exists

'

Obnovením prohlížeče se vrátí soubor 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 .

Svůj dotaz můžete dokonce předat 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.

Podíl Podíl tweet E-mailem SQL vs. NoSQL: Jaká je nejlepší databáze pro váš další projekt?

Výběr typu databáze může být složitý. Měli byste zvolit SQL nebo NoSQL?

Číst dále
Související témata
  • Programování
  • databáze
  • Programování
  • Návody na kódování
O autorovi Idisou Omisola(94 publikovaných článků)

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.

Více od Idowu Omisola

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