Kako povezati svojo aplikacijo Flask z CouchDB: Baza podatkov NoSQL

Kako povezati svojo aplikacijo Flask z CouchDB: Baza podatkov NoSQL

Povezovanje Flaska z bazami podatkov SQL, kot sta PostgreSQL in SQLite, je preprosto. Toda okvir se odlično sinhronizira tudi z bazami podatkov NoSQL, kot je CouchDB. Kot dodatno prednost lahko preprosto poiščete svoje podatke, če uporabljate CouchDB s Flaskom.





Ste pripravljeni na spremembo z uporabo NoSQL, kot je CouchDB, v aplikaciji Flask? Takole lahko nastavite CouchDB na svojem lokalnem računalniku in ga povežete s Flaskom.





Kaj je CouchDB?

CouchDB je zbirka podatkov NoSQL, ki je trenutno v lasti Apache Software Foundation. Programska oprema, napisana z Erlangom, je bila prvič izdana leta 2005.





Za razliko od običajnih baz podatkov, povezanih s tabelami, na katere ste najverjetneje vajeni, je CouchDB nerelacijski sistem za upravljanje baz podatkov, ki podatke shranjuje kot surovi JSON.

CouchDB ne blokira, zato med vnosom podatkov ne zaklene baze podatkov. Ena od močnih točk CouchDB je, da za branje in pisanje podatkov uporablja politiko sočasnega nadzora v več različicah. Tako omogoča hkratne vnose več uporabnikov brez vmešavanja v obstoječo strukturo podatkov v zbirki podatkov.



Tako je CouchDB hiter med poizvedbami in z njim je enostavno delati med uporabo asinhronih metod. Vendar pa s tem ni nič boljši od svojega kolega SQL. Vsaka tehnologija ima svoje prednosti in slabosti.

Nastavitev CouchDB

Če želite začeti uporabljati CouchDB, prenesite in namestite združljivo različico iz Uradna spletna stran CouchDB .





Če vam najnovejša različica ne deluje, nadaljujte z Arhiv CouchDB in prenesite različico 1.6.1, ki je starejša različica CouchDB.

Ko namestite CouchDB, ga zaženite v računalniku, tako kot katero koli drugo namizno aplikacijo.





Odprite brskalnik. Nato zaženite strežnik CouchDB tako, da v naslovno vrstico prilepite naslednje:

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

Nastavite Python in Flask

Ta vadnica pa predvideva, da imate v računalniku že nameščen Python. V nasprotnem primeru pojdite na python.org in v računalnik namestite najnovejšo različico programa Python.

Ko nastavite CouchDB, ustvarite korensko mapo projekta. Nato odprite ukazno vrstico v tem imeniku in ustvarite datoteko Navidezno okolje Python .

Najnovejšo različico programa Flask namestite v navidezni prostor z uporabo pip :

kako dodati glasbo videoposnetku na iphone
pip install flask

Povežite steklenico s CouchDB

Če želite začeti uporabljati CouchDB z aplikacijo Flask, namestite Flask-CouchDB , izvajalni paket za povezovanje zbirke podatkov s Flaskom.

Storiti to:

pip install Flask-CouchDB

Ko namestite Flask-CouchDB uspešno ustvarite app.py datoteko v tej korenski mapi. Podobno ustvarite datoteko database.py file - to upravlja ustvarjanje vaše baze podatkov.

Odprto database.py in uvozite naslednje pakete:

from couchdb import Server

Nato ustvarite svojo bazo podatkov v isti datoteki z naslednjim blokom kode:

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

Izvedite database.py prek CLI. Nato odprite ali osvežite lokalni strežnik CouchDB prek brskalnika, kot ste to storili prej. Zdaj bi morali videti bazo podatkov ( muocouch v tem primeru), navedenih v CouchDB.

Povezano: Kako zagnati skript Python

Opomba: Prepričajte se, da za baze podatkov uporabljate konvencijo poimenovanja malih črk, saj CouchDB morda ne sprejema velikih ali mešanih črk.

Shranite svoje prve podatke CouchDB s pomočjo steklenice

Navsezadnje je namen katere koli baze podatkov shranjevanje podatkov. Ko imate zbirko podatkov v CouchDB, lahko takoj začnete shranjevati podatke vanjo iz aplikacije Flask.

Za začetek odprite app.py in uvozite naslednje pakete:

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

Nato ustvarite aplikacijo Flask in primerek strežnika CouchDB:

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

Zdaj pa shranimo nekaj vnosov uporabnikov v 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

'

Če želite, lahko strežnik Flask nastavite na razvojni način, preden ga zaženete.

Če želite to narediti, v CLI zaženite naslednji ukaz:

set FLASK_ENV=development

Upoštevajte, da nastavitev strežniškega načina ni obvezna. Odpravljanje napak v vaši kodi je enostavno.

Toda ne glede na nastavitev načina strežnika, zaženite strežnik Flask prek CMD tako:

flask run

Flask pa privzeto določa vrata localhost: 5000 . Zdaj bi morali videti sporočilo v H2 oznako, ko ta naslov naložite prek brskalnika.

Preverjanje podatkov in preverjanje dvojnikov z uporabo poizvedb CouchDB

Če želite to še bolj standardizirati, lahko z poizvedbami potrdite vnose in preprečite podvojene podatke v zbirki podatkov. Poizvedovanje po CouchDB se nekoliko razlikuje od tega, kako to počnete z bazami podatkov SQL.

CouchDB za poizvedovanje po podatkih iz zbirke podatkov uporablja tako imenovane 'poglede JavaScript'. Na srečo je to relativno preprosto.

Preden nadaljujete, je videti osnovni pogled poizvedbe CouchDB:

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

Zdaj uporabimo zgornjo kodo praktično:

#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

'

Zgornja koda uporablja Uporabnik razred za poizvedovanje po podatkih, ki jih pridobi funkcija pogleda. Bodite pozorni na parametre v nizu poizvedb ( myQuery ).

Tiskanje q3 , kot ste to storili zgoraj, bi zdaj morala prikazati vsa uporabniška imena in e -poštne naslove v zbirki podatkov v ukazni vrstici.

Torej, kako lahko uporabite to poizvedbo za preverjanje vnosov uporabnikov:

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

'

Če osvežite brskalnik, se vrne drugače vsakič, ko poskušate vnesti uporabniško ime ali e -poštno sporočilo, ki je že v bazi podatkov. Če vnesete novega, bo uspešno shranil vaše podatke z izvajanjem datoteke če stanje.

Povezano: Kako uporabiti izjavo Python if

To je to! Pravkar ste ustvarili svojo prvo bazo podatkov NoSQL z uporabo Flask-CouchDB.

Čeprav se ustvarjanje in poizvedovanje v podatkovnih zbirkah v CouchDB vrti okoli primerov, ki smo jih tukaj poudarili, lahko funkcije Flask še dodatno poiščete. Vnosna polja lahko na primer zasukate z uporabo wtforms in označite dvojnike z uporabo sporočila Flask bliskavico .

Poizvedbo lahko celo posredujete v jQuery JavaScript za preverjanje vnosov in asinhrono preverjanje dvojnikov.

Je CouchDB boljši od baz podatkov SQL?

Uporaba CouchDB ali katere koli druge baze podatkov NoSQL s Flaskom ali katero koli drugo programsko tehnologijo je odvisna od vaših želja. Vendar pa pride prav pri obravnavi nestrukturiranih podatkov in surovih medijev.

Preden se odločite, boste morda želeli pogledati razlike med bazami podatkov NoSQL in SQL, da se boste lažje odločili, katera od njih je primerna za vaš projekt.

Deliti Deliti Cvrkutati E-naslov SQL proti NoSQL: Katera je najboljša zbirka podatkov za vaš naslednji projekt?

Izbira vrste zbirke podatkov je lahko težavna. Bi morali izbrati SQL ali NoSQL?

Preberite Naprej
Sorodne teme
  • Programiranje
  • zbirko podatkov
  • Programiranje
  • Vadnice za kodiranje
O avtorju Idisou Omisola(94 objavljenih člankov)

Idowu je navdušen nad vsemi pametnimi tehnologijami in produktivnostjo. V prostem času se igra s kodiranjem in se, ko mu je dolgčas, preklopi na šahovsko tablo, rad pa se občasno tudi odmika od rutine. Njegova strast, da ljudem pokaže pot okoli sodobne tehnologije, ga motivira, da piše več.

Več od Idowu Omisola

Naročite se na naše novice

Pridružite se našemu glasilu za tehnične nasvete, ocene, brezplačne e -knjige in ekskluzivne ponudbe!

Kliknite tukaj, če se želite naročiti