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, izmantojot 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 datu ievades laikā tas neaizslēdz datu bāzi. 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 pie 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:
pip uzstādīšanas kolba
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 instalēt 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:
no couchdb importēšanas servera
Pēc tam izveidojiet savu datu bāzi tajā pašā failā, izmantojot šādu koda bloku:
no couchdb importēšanas servera
serveris = Serveris ()
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 nekavējoties sākt tajā glabāt datus no lietotnes Flask.
Lai sāktu, atveriet app.py un importējiet šādus iepakojumus:
no kolbas importa Kolba
no couchdb importēšanas servera
no flaskext.couchdb importa dokumenta
Pēc tam izveidojiet lietotni Flask un CouchDB servera instanci:
app = kolba (__name__, static_url_path = '/static')
app.debug = Patiesa
serveris = Serveris ()
Tagad saglabāsim dažas lietotāju ievades CouchDB:
@app.route ('/', metodes = ['GET', 'POST'])
def reģistrs ():
lietotājs = {
"lietotājvārds": "multivides vietne",
"e -pasts": "[email protected]",
"parole": "encrypteddata"
}
db = serveris ['muocouch'] #atlasiet datu bāzi
doc_id, doc_rev = db.save (lietotājs) #saglabājiet savus datus datubāzē
atgriezties "Jūsu datiem tagad vajadzētu būt datu bāzē
"
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:
kopa FLASK_ENV = attīstība
Ņ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, šeit ir norādīts, kā palaist kolbas serveri, izmantojot CMD:
kolbas skrējiens
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 = funkcija (dok.)
{emit (doc.doc_rev, doc); }
myQuery = [docType] .query (db, map_func, reduc_fun = nav)
Tagad praktiski izmantosim iepriekš minēto kodu:
#Izveidojiet dokumenta objekta modeli ar nosaukumu "Lietotāji:"
klases lietotājs (dokuments):
doc_type = 'Lietotājs'
@app.route ('/', metodes = ['GET', 'POST'])
def reģistrs ():
lietotājs = {
"lietotājvārds": "multivides vietne",
"e -pasts": "[email protected]",
"parole": "encrypteddata"
}
db = serveris ['muocouch'] #atlasiet datu bāzi
# Izmantojiet skata funkciju, lai iegūtu datus no CouchDB
map_func = funkcija (dok.)
{emit (doc.doc_rev, doc); }
# Iegūstiet visus datus, palaižot vaicājumu kopu
myQuery = User.query (db, map_func, Redu_fun = Nav, reverss = True)
q = [i ['lietotājvārds'] i i myQuery] # Noņemiet visus lietotājvārdus no datu bāzes
q2 = [i ['email'] for i in myQuery] # Noņemiet visas e -pasta adreses no datu bāzes
q3 = q+q2 # Apvienojiet abus vaicājumus vienā sarakstā
drukāt (q3)
atgriezties "Jūsu dati tagad ir datu bāzē
"
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:
ja nē (lietotājs ['lietotājvārds'] trešajā ceturksnī vai lietotājs ['e -pasts'] trešajā ceturksnī):
#Saglabājiet savus datus datu bāzē, ja to nav
doc_id, doc_rev = db.save (lietotājs)
atgriezties "Reģistrēts veiksmīgi
"
cits:
atgriezties "Pastāv lietotājvārds vai e -pasts
"
Atsvaidzinot pārlūkprogrammu, tiek atgriezts citādi paziņojumu katru reizi, kad mēģināt ievadīt lietotājvārdu vai e -pastu, kas jau ir datu bā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 paplašināt 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āks 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.
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
- Programmēšana
- datu bāze
- Programmēšana
- Kodēšanas apmācības
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.
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