Kā savienot savu kolbas lietotni ar CouchDB: NoSQL datu bāze

Kā savienot savu kolbas lietotni ar CouchDB: NoSQL datu bāze

Kolbas savienošana ar SQL datu bāzēm, piemēram, PostgreSQL un SQLite, ir vienkārša. Bet sistēma lieliski sinhronizējas arī ar NoSQL datu bāzēm, piemēram, CouchDB. Un kā papildu priekšrocība, izmantojot CouchDB ar kolbu, varat viegli veikt vaicājumus saviem datiem.





Vai esat gatavs veikt izmaiņas, izmantojot lietotni Flask no NoSQL, piemēram, CouchDB? Tālāk ir norādīts, kā iestatīt CouchDB vietējā mašīnā un savienot to ar kolbu.





Kas ir CouchDB?

CouchDB ir NoSQL datu bāze, kas pašlaik pieder Apache Software Foundation. Rakstīta ar Erlang, programmatūra pirmo reizi tika izlaista 2005.





Atšķirībā no parastajām ar tabulām saistītajām datu bāzēm, pie kurām, visticamāk, esat pieradis, CouchDB ir nesaistītu datu bāzu pārvaldības sistēma, kas datus glabā kā neapstrādātu JSON.

CouchDB nav bloķējošs, tāpēc tas neaizslēdz datu bāzi datu ievades laikā. Viena no CouchDB stiprajām pusēm ir tā, ka datu lasīšanai un rakstīšanai tā izmanto vairāku versiju vienlaicīguma kontroles politiku. Tādējādi tas ļauj vienlaicīgi ievadīt vairākus lietotājus, neiejaucoties datu bāzes esošajā datu struktūrā.



Tādējādi CouchDB ir ātrs vaicājumu laikā un ar to ir viegli strādāt, izmantojot asinhronās metodes. Tas nozīmē, ka tas nepadara to labāku par SQL ekvivalentu. Katrai tehnoloģijai ir savi plusi un mīnusi.

CouchDB iestatīšana

Lai sāktu lietot CouchDB, lejupielādējiet un instalējiet saderīgu versiju no CouchDB oficiālā vietne .





Un, ja šī jaunākā versija jums nedarbojas, pārejiet uz CouchDB arhīvs un lejupielādējiet 1.6.1 versiju, kas ir iepriekšējā CouchDB versija.

Kad esat instalējis CouchDB, palaidiet to savā datorā tāpat kā jebkuru citu darbvirsmas lietotni.





Atveriet pārlūkprogrammu. Pēc tam palaidiet CouchDB serveri, adreses joslā ielīmējot šādu informāciju:

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

Iestatiet Python un Flask

Tomēr šajā apmācībā tiek pieņemts, ka datorā jau ir instalēts Python. Pretējā gadījumā dodieties uz python.org un datorā instalējiet jaunāko Python versiju.

Kad esat iestatījis CouchDB, izveidojiet projekta saknes mapi. Pēc tam atveriet komandrindu šajā direktorijā un izveidojiet Python virtuālā vide .

Instalējiet jaunāko kolbas versiju virtuālajā telpā, izmantojot pip :

kā samazināt ekrāna spilgtumu logos 10
pip install flask

Savienojiet kolbu ar CouchDB

Lai sāktu lietot CouchDB ar lietotni Flask, instalējiet Flask-CouchDB izpildlaika pakotne datu bāzes savienošanai ar kolbu.

Lai to izdarītu:

pip install Flask-CouchDB

Pēc instalēšanas Flask-CouchDB veiksmīgi izveidojiet app.py failu šajā saknes mapē. Līdzīgi izveidojiet a database.py fails - tas apstrādā jūsu datu bāzes izveidi.

Atvērt database.py un importējiet šādus iepakojumus:

from couchdb import Server

Pēc tam izveidojiet savu datu bāzi tajā pašā failā, izmantojot šādu koda bloku:

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

Izpildīt database.py izmantojot CLI. Pēc tam atveriet vai atsvaidziniet CouchDB vietējo serveri, izmantojot iepriekšējo pārlūkprogrammu. Tagad jums vajadzētu redzēt datu bāzi ( muocouch šajā gadījumā) uzskaitīti CouchDB.

Saistīts: Kā palaist Python skriptu

Piezīme: Pārliecinieties, ka datu bāzēm izmantojat mazo burtu nosaukumu konvenciju, jo CouchDB, iespējams, nepieņem lielos vai jauktos burtus.

Saglabājiet savus pirmos CouchDB datus, izmantojot kolbu

Galu galā jebkuras datu bāzes mērķis ir datu glabāšana. Kad jums ir datu bāze CouchDB, jūs varat sākt tajā saglabāt datus no savas kolbas lietotnes.

Lai sāktu, atveriet app.py un importējiet šādus iepakojumus:

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

Pēc tam izveidojiet lietotni Flask un CouchDB servera instanci:

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

Tagad saglabāsim dažas lietotāju ievades 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

'

Ja vēlaties, varat iestatīt kolbas serveri izstrādes režīmā pirms tā palaišanas.

Lai to izdarītu, palaidiet šādu komandu, izmantojot savu CLI:

set FLASK_ENV=development

Ņemiet vērā, ka servera režīma iestatīšana nav obligāta. Tas tikai atvieglo jūsu koda atkļūdošanu.

Bet neatkarīgi no servera režīma iestatījuma, lūk, kā palaist kolbas serveri, izmantojot CMD:

flask run

Tomēr kolba noklusē jūsu portu vietējais saimnieks: 5000 . Tagad jums vajadzētu redzēt ziņojumu sadaļā H2 tagu, kad ielādējat šo adresi, izmantojot pārlūkprogrammu.

Apstipriniet datus un pārbaudiet dublikātus, izmantojot CouchDB vaicājumus

Lai to vēl vairāk standartizētu, varat izmantot vaicājumus, lai apstiprinātu ievades un novērstu dublējumus savā datu bāzē. CouchDB vaicāšana nedaudz atšķiras no tā, kā jūs to darāt, izmantojot SQL datu bāzes.

CouchDB izmanto to, ko sauc par “JavaScript skatiem”, lai vaicātu datus no datu bāzes. Par laimi, tas ir salīdzinoši vienkārši.

Pirms turpināt darbu, šeit izskatās pamata CouchDB vaicājuma skats:

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

Tagad praktiski izmantosim iepriekš minēto kodu:

#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

'

Iepriekš minētais kods izmanto Lietotājs klasē, lai vaicātu skata funkcijas iegūtos datus. Pievērsiet uzmanību vaicājumu kopas parametriem ( myQuery ).

Drukāšana q3 , kā jūs to darījāt iepriekš, tagad komandrindā vajadzētu izvadīt visus lietotājvārdus un e -pasta adreses datu bāzē.

Lūk, kā jūs varat izmantot šo vaicājumu, lai apstiprinātu lietotāju ievadīto informāciju:

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

'

Atsvaidzinot pārlūkprogrammu, tiek atgriezts citādi paziņojumu katru reizi, kad mēģināt ievadīt lietotājvārdu vai e -pasta adresi, kas jau ir datubāzē. Un, ja ievadāt jaunu, tas veiksmīgi saglabā jūsu datus, izpildot ja stāvoklis.

Saistīts: Kā lietot Python, ja paziņojums

Tieši tā! Jūs tikko izveidojāt savu pirmo NoSQL datu bāzi, izmantojot Flask-CouchDB.

Lai gan datu bāzu izveide un vaicāšana programmā CouchDB balstās uz šeit uzskaitītajiem piemēriem, jūs varat izpētīt Flask funkcijas tālāk. Piemēram, varat pagriezt ievades laukus, izmantojot wtforms un atzīmējiet dublikātus, izmantojot kolbas ziņojumu zibspuldze .

Jūs pat varat nodot savu vaicājumu JavaScript jQuery, lai apstiprinātu ievades un pārbaudītu dublikātus asinhroni.

Vai CouchDB ir labāka par SQL datu bāzēm?

CouchDB vai jebkuras citas NoSQL datu bāzes izmantošana ar kolbu vai jebkuru citu programmēšanas tehnoloģiju ir atkarīga no jūsu vēlmēm. Bet tas ir noderīgi, strādājot ar strukturētiem datiem un neapstrādātiem plašsaziņas līdzekļiem.

Tomēr, pirms izlemjat, iespējams, vēlēsities apskatīt atšķirības starp NoSQL un SQL datu bāzēm, lai palīdzētu jums izlemt, kura no tām ir piemērota jūsu projektam.

Kopīgot Kopīgot Čivināt E -pasts SQL pret NoSQL: kāda ir labākā datubāze nākamajam projektam?

Datu bāzes veida izvēle var būt sarežģīta. Vai jums vajadzētu izvēlēties SQL vai NoSQL?

Lasīt Tālāk
Saistītās tēmas
  • Programmēšana
  • datu bāze
  • Programmēšana
  • Kodēšanas apmācības
Par autoru Idisou Omisola(Publicēti 94 raksti)

Idowu aizraujas ar jebko gudru tehnoloģiju un produktivitāti. Brīvajā laikā viņš spēlējas ar kodēšanu un pārslēdzas uz šaha galdu, kad viņam ir garlaicīgi, taču viņam arī patīk laiku pa laikam atrauties no rutīnas. Viņa aizraušanās parādīt cilvēkiem ceļu apkārt mūsdienu tehnoloģijām motivē viņu rakstīt vairāk.

Vairāk no Idowu Omisola

Abonējiet mūsu biļetenu

Pievienojieties mūsu informatīvajam izdevumam, lai iegūtu tehniskus padomus, pārskatus, bezmaksas e -grāmatas un ekskluzīvus piedāvājumus!

Noklikšķiniet šeit, lai abonētu