Så här ansluter du din kolvapp med CouchDB: En NoSQL -databas

Så här ansluter du din kolvapp med CouchDB: En NoSQL -databas

Att ansluta Flask med SQL -databaser som PostgreSQL och SQLite är en knep. Men ramverket synkroniseras perfekt med NoSQL -databaser som CouchDB också. Och som en extra fördel kan du enkelt fråga efter dina data när du använder CouchDB med Flask.





Klar att göra en ändring genom att använda en NoSQL som CouchDB med din Flask -app? Så här konfigurerar du CouchDB på din lokala maskin och ansluter den med Flask.





Vad är CouchDB?

CouchDB är en NoSQL -databas som för närvarande ägs av Apache Software Foundation. Skrivet med Erlang, mjukvaran släpptes första gången 2005.



Till skillnad från de vanliga tabellkopplade databaserna du troligen är van vid, är CouchDB ett icke-relationellt databashanteringssystem som lagrar data som rå JSON.

CouchDB blockerar inte, så det låser inte databasen under datainmatning. En av de starka sidorna med CouchDB är att den använder en multi-version samtidighetskontrollpolicy för att läsa och skriva data. Så det tillåter samtidiga inmatningar från flera användare utan störningar från den befintliga strukturen för data i databasen.



Således är CouchDB snabb vid förfrågningar och lätt att arbeta med när man använder asynkrona metoder. Som sagt, det gör det inte bättre än dess SQL -motsvarighet. Varje teknik har sina fördelar och nackdelar.

CouchDB -inställning

För att börja använda CouchDB, ladda ner och installera en kompatibel version från CouchDB: s officiella webbplats .





Och om den senaste versionen inte fungerar för dig, gå vidare till CouchDB -arkiv och ladda ner version 1.6.1, som är en tidigare version av CouchDB.

När du har installerat CouchDB kör du den på din dator som om du gör någon annan stationär app.





Öppna din webbläsare. Starta sedan CouchDBs server genom att klistra in följande i adressfältet:

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

Ställ in Python och kolv

Denna handledning förutsätter dock att du redan har Python installerat på din dator. Gå annars till python.org och installera den senaste versionen av Python på din dator.

När du har konfigurerat CouchDB skapar du en projektrotmapp. Öppna sedan kommandoraden till den katalogen och skapa en Python virtuell miljö .

Installera den senaste versionen av Flask i det virtuella utrymmet med pip :

bättre fotovisare för Windows 10
pip install flask

Anslut kolven med CouchDB

För att börja använda CouchDB med din Flask -app, installera Kolv-soffaDB , körtidspaketet för att ansluta databasen med Flask.

Att göra detta:

pip install Flask-CouchDB

När du har installerat Kolv-soffaDB framgångsrikt, skapa en app.py filen i den rotmappen. Skapa på samma sätt en databas.py fil - detta hanterar skapandet av din databas.

Öppen databas.py och importera följande paket:

from couchdb import Server

Skapa sedan din databas i samma fil med följande kodblock:

from couchdb import Server
server = Server()
db = server.create('muocouch')

Kör databas.py via CLI. Öppna eller uppdatera sedan CouchDB: s lokala server via din webbläsare som du gjorde tidigare. Du bör nu se databasen ( muocouch i detta fall) som anges i CouchDB.

Relaterad: Hur man kör ett Python -skript

Notera: Se till att du använder en liten namngivningskonvention för databaser, eftersom CouchDB kanske inte accepterar versaler eller blandade versaler.

Lagra dina första CouchDB -data med hjälp av kolv

I slutändan är syftet med en databas datalagring. När du väl har en databas i CouchDB kan du börja lagra data i den från din Flask -app direkt.

För att börja, öppna app.py och importera följande paket:

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

Skapa därefter en Flask -app och CouchDB -serverinstans:

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

Låt oss nu lagra några användarinmatningar i 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

'

Om du vill kan du ställa in din Flask -server till utvecklingsläge innan du kör den.

För att göra detta, kör följande kommando via din CLI:

set FLASK_ENV=development

Observera att inställning av servern är valfritt. Det gör bara felsökning av din kod problemfri.

Men oavsett serverlägesinställning, så här startar du kolvservern via CMD:

flask run

Flaskan är dock din port som standard lokal värd: 5000 . Du bör nu se meddelandet i H2 tag när du laddar den här adressen via din webbläsare.

Verifiera data och kontrollera dubbletter med hjälp av CouchDB -frågor

För att standardisera detta ytterligare kan du använda frågor för att validera inmatningar och förhindra dubbletter i din databas. Att fråga CouchDB är lite annorlunda än hur du gör detta med SQL -databaser.

CouchDB använder vad det kallar 'JavaScript -vyer' för att söka efter data från databasen. Lyckligtvis är detta relativt enkelt.

Så här ser en vanlig CouchDB -sökfråga ut innan du går vidare:

map_func = '''function(doc)
{ emit(doc.doc_rev, doc); }'''
myQuery = [docType].query(db, map_func, reduce_fun=None)

Låt oss nu använda koden ovan praktiskt taget:

#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

'

Koden ovan använder Användare class för att fråga efter data som hämtats av view -funktionen. Var noga med parametrarna i frågesatsen ( myQuery ).

Utskrift q3 , som du gjorde ovan, bör nu mata ut alla användarnamn och e -postadresser i databasen inom kommandoraden.

Så här kan du använda den här frågan för att validera användarnas inmatningar:

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

'

Uppdatering av din webbläsare returnerar annan uttalande varje gång du försöker mata in ett användarnamn eller ett e -postmeddelande som redan finns i databasen. Och om du anger en ny, lagras dina data framgångsrikt genom att köra om skick.

Relaterad: Hur man använder Python if Statement

Det är allt! Du skapade just din första NoSQL-databas med Flask-CouchDB.

Även om du skapar och frågar efter databaser i CouchDB kretsar kring exemplen vi markerade här, kan du spåra Flask funktioner ytterligare. Till exempel kan du snurra upp inmatningsfält med wtforms och flagga dubbletter med hjälp av Flask's meddelande blixt .

Du kan till och med överföra din fråga till JavaScript jQuery för att validera inmatningar och kontrollera dubbletter asynkront.

Är CouchDB bättre än SQL -databaser?

Att använda CouchDB eller någon annan NoSQL -databas med Flask eller annan programmeringsteknik beror på dina preferenser. Men det är praktiskt när man hanterar strukturlös data och rådata.

Som sagt, innan du bestämmer dig kanske du vill titta på skillnaderna mellan NoSQL- och SQL -databaser för att hjälpa dig att bestämma vilken av dem som är lämplig för ditt projekt.

Dela med sig Dela med sig Tweet E-post SQL vs NoSQL: Vilken är den bästa databasen för ditt nästa projekt?

Att välja en databastyp kan vara svårt. Ska du välja SQL eller NoSQL?

Läs Nästa
Relaterade ämnen
  • Programmering
  • databas
  • Programmering
  • Handledning för kodning
Om författaren Idisou Omisola(94 artiklar publicerade)

Idowu brinner för allt smart teknik och produktivitet. På fritiden leker han med kodning och byter till schackbrädet när han har tråkigt, men han älskar också att bryta sig från rutinen då och då. Hans passion för att visa människor vägen kring modern teknik motiverar honom att skriva mer.

Mer från Idowu Omisola

Prenumerera på vårt nyhetsbrev

Gå med i vårt nyhetsbrev för tekniska tips, recensioner, gratis e -böcker och exklusiva erbjudanden!

Klicka här för att prenumerera