Kaip prijungti savo kolbos programą su „CouchDB“: „NoSQL“ duomenų bazė

Kaip prijungti savo kolbos programą su „CouchDB“: „NoSQL“ duomenų bazė

„Flask“ prijungimas prie SQL duomenų bazių, tokių kaip „PostgreSQL“ ir „SQLite“, yra paprastas dalykas. Tačiau sistema puikiai sinchronizuojasi su „NoSQL“ duomenų bazėmis, tokiomis kaip „CouchDB“. Naudodami „CouchDB“ su „Flask“, kaip papildomą pranašumą galite lengvai užklausti savo duomenis.





Pasirengę keisti, naudodami „NoSQL“, pvz., „CouchDB“, naudodami „Flask“ programą? Štai kaip nustatyti „CouchDB“ vietiniame kompiuteryje ir prijungti jį prie „Flask“.





Kas yra CouchDB?

„CouchDB“ yra „NoSQL“ duomenų bazė, kuri šiuo metu priklauso „Apache Software Foundation“. Parašyta kartu su „Erlang“, programinė įranga pirmą kartą buvo išleista 2005 m.



Skirtingai nuo įprastų su lentelėmis susietų duomenų bazių, prie kurių greičiausiai esate pripratę, „CouchDB“ yra nesusijusi duomenų bazių valdymo sistema, kuri saugo duomenis kaip neapdorotus JSON.

„CouchDB“ nėra blokuojamas, todėl duomenų užvedimo metu neužrakina duomenų bazės. Viena stipriųjų „CouchDB“ pusių yra ta, kad ji naudoja kelių versijų lygiagrečių valdymo politiką duomenims skaityti ir rašyti. Taigi tai leidžia vienu metu įvesti kelis vartotojus, nesikišant į esamą duomenų bazės duomenų struktūrą.



Taigi „CouchDB“ yra greitas užklausų metu ir su juo lengva dirbti naudojant asinchroninius metodus. Tai reiškia, kad tai nėra geresnis nei jo SQL atitikmuo. Kiekviena technologija turi savo privalumų ir trūkumų.

„CouchDB“ sąranka

Norėdami pradėti naudoti „CouchDB“, atsisiųskite ir įdiekite suderinamą versiją iš „CouchDB“ oficiali svetainė .





Ir jei naujausia versija jums netinka, pereikite prie „CouchDB“ archyvas ir atsisiųskite 1.6.1 versiją, kuri yra ankstesnė „CouchDB“ versija.

Įdiegę „CouchDB“, paleiskite ją savo kompiuteryje, kaip ir bet kurią kitą darbalaukio programą.





Atidarykite naršyklę. Tada paleiskite „CouchDB“ serverį į adreso juostą įklijuodami:

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

Nustatykite „Python“ ir „Flask“

Tačiau šioje pamokoje daroma prielaida, kad jūsų kompiuteryje jau įdiegtas „Python“. Priešingu atveju eikite į python.org ir įdiekite naujausią „Python“ versiją į savo kompiuterį.

Nustatę „CouchDB“, sukurkite projekto šakninį aplanką. Tada atidarykite savo komandų eilutę į tą katalogą ir sukurkite „Python“ virtuali aplinka .

Įdiekite naujausią „Flask“ versiją virtualioje erdvėje naudodami pip :

akumuliatoriaus piktograma nerodoma užduočių juostoje
pip install flask

Prijunkite kolbą su „CouchDB“

Norėdami pradėti naudoti „CouchDB“ su „Flask“ programa, įdiekite Kolba-sofa-lova , vykdymo paketą, skirtą duomenų bazei sujungti su kolba.

Padaryti tai:

pip install Flask-CouchDB

Įdiegę Kolba-sofa-lova sėkmingai, sukurkite app.py failą tame šakniniame aplanke. Panašiai sukurkite a database.py failą - tai tvarko jūsų duomenų bazės kūrimą.

Atviras database.py ir importuokite šiuos paketus:

from couchdb import Server

Tada sukurkite savo duomenų bazę tame pačiame faile naudodami šį kodo bloką:

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

Vykdyti database.py per CLI. Tada atidarykite arba atnaujinkite „CouchDB“ vietinį serverį per savo naršyklę, kaip tai darėte anksčiau. Dabar turėtumėte pamatyti duomenų bazę ( muocouch šiuo atveju) išvardyti „CouchDB“.

Susijęs: Kaip paleisti „Python“ scenarijų

Pastaba: Įsitikinkite, kad duomenų bazėms naudojate mažųjų raidžių pavadinimo susitarimą, nes „CouchDB“ gali nepriimti didžiųjų ar mišriųjų raidžių.

Pirmuosius „CouchDB“ duomenis saugokite naudodami kolbą

Galų gale bet kurios duomenų bazės tikslas yra duomenų saugojimas. Kai turėsite duomenų bazę „CouchDB“, galėsite iš karto pradėti saugoti duomenis į ją iš „Flask“ programos.

Norėdami pradėti, atidarykite app.py ir importuokite šiuos paketus:

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

Tada sukurkite „Flask“ programą ir „CouchDB“ serverio egzempliorių:

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

Dabar išsaugokime kai kuriuos vartotojo įvestis į „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

'

Jei norite, prieš paleisdami „Flask“ serverį galite nustatyti kūrimo režimą.

Norėdami tai padaryti, paleiskite šią komandą per savo CLI:

set FLASK_ENV=development

Atminkite, kad serverio režimo nustatymas yra neprivalomas. Tai tik palengvina jūsų kodo derinimą.

Tačiau, nepaisant serverio režimo nustatymo, štai kaip paleisti kolbos serverį per CMD:

flask run

Tačiau kolba pagal numatytuosius nustatymus nurodo jūsų prievadą vietinis šeimininkas: 5000 . Dabar turėtumėte pamatyti pranešimą H2 žymę, kai įkeliate šį adresą į savo naršyklę.

Patvirtinkite duomenis ir patikrinkite dublikatus naudodami „CouchDB“ užklausas

Norėdami tai dar labiau standartizuoti, galite naudoti užklausas, kad patvirtintumėte įvestis ir išvengtumėte duomenų bazės pasikartojimo. „CouchDB“ užklausa šiek tiek skiriasi nuo to, kaip tai darote naudodami SQL duomenų bazes.

„CouchDB“ naudoja tai, kas vadinama „JavaScript“ rodiniais, kad užklaustų duomenis iš duomenų bazės. Laimei, tai yra gana paprasta.

Prieš tęsdami toliau, štai kaip atrodo pagrindinis „CouchDB“ užklausos vaizdas:

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

Dabar naudokime aukščiau pateiktą kodą praktiškai:

#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

'

Aukščiau pateiktas kodas naudoja Vartotojas klasę, kad pateiktų peržiūros funkcijos gautų duomenų užklausą. Atidžiai stebėkite užklausos rinkinio parametrus ( myQuery ).

Spausdinimas q3 , kaip jūs padarėte aukščiau, dabar komandinėje eilutėje turėtų išvesti visus vartotojo vardus ir el. pašto adresus duomenų bazėje.

Štai kaip galite naudoti šią užklausą, kad patvirtintumėte vartotojų įvestis:

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

'

Atnaujinus naršyklę, pateikiamas Kitas kiekvieną kartą, kai bandote įvesti vartotojo vardą arba el. pašto adresą, kuris jau yra duomenų bazėje. Ir jei įvedate naują, jis sėkmingai saugo jūsų duomenis vykdydamas jei būklė.

Susijęs: Kaip naudoti „Python“, jei teiginys

Viskas! Jūs ką tik sukūrėte savo pirmąją „NoSQL“ duomenų bazę naudodami „Flask-CouchDB“.

Nors duomenų bazių kūrimas ir užklausų teikimas „CouchDB“ grindžiamas čia parodytais pavyzdžiais, galite toliau ieškoti „Flask“ funkcijų. Pavyzdžiui, įvesties laukus galite išplėsti naudodami wtforms ir pažymėkite dublikatus naudodami Flasko pranešimą blykstė .

Jūs netgi galite perduoti savo užklausą „JavaScript“ „jQuery“, kad patvirtintumėte įvestis ir patikrintumėte dublikatus asinchroniškai.

Ar „CouchDB“ yra geresnis už SQL duomenų bazes?

„CouchDB“ ar bet kurios kitos „NoSQL“ duomenų bazės naudojimas su „Flask“ ar bet kuria kita programavimo technologija priklauso nuo jūsų pageidavimų. Bet tai praverčia tvarkant struktūros neturinčius duomenis ir neapdorotą laikmeną.

Prieš priimdami sprendimą, galbūt norėsite pažvelgti į skirtumus tarp „NoSQL“ ir „SQL“ duomenų bazių, kad padėtumėte nuspręsti, kuri iš jų tinka jūsų projektui.

Dalintis Dalintis „Tweet“ Paštu SQL prieš „NoSQL“: kokia yra geriausia jūsų kito projekto duomenų bazė?

Duomenų bazės tipo pasirinkimas gali būti sudėtingas. Ar turėtumėte pasirinkti SQL ar NoSQL?

Skaityti toliau
Susijusios temos
  • Programavimas
  • duomenų bazę
  • Programavimas
  • Kodavimo pamokos
Apie autorių Idisou Omisola(Paskelbti 94 straipsniai)

Idowu aistringai domisi visomis išmaniosiomis technologijomis ir produktyvumu. Laisvalaikiu jis žaidžia koduodamasis ir nuobodžiai persijungia į šachmatų lentą, tačiau taip pat mėgsta retkarčiais atitrūkti nuo rutinos. Jo aistra parodyti žmonėms kelią aplink šiuolaikines technologijas skatina jį daugiau rašyti.

Daugiau iš Idowu Omisola

Prenumeruokite mūsų naujienlaiškį

Prisijunkite prie mūsų naujienlaiškio, kad gautumėte techninių patarimų, apžvalgų, nemokamų el. Knygų ir išskirtinių pasiūlymų!

Norėdami užsiprenumeruoti, spustelėkite čia