„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“. Be to, naudodamiesi „CouchDB“ su „Flask“ 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ą.

instagram viewer

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:

pip montavimo kolba

Prijunkite kolbą su „CouchDB“

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

Padaryti tai:

pip įdiegti Flask-CouchDB

Įdiegę Kolba-CouchDB 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:

iš „couchdb“ importo serverio

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

iš „couchdb“ importo serverio
serveris = Serveris ()
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:

iš kolbos importo kolba
iš „couchdb“ importo serverio
iš flaskext.couchdb importo dokumento

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

app = kolba (__name__, static_url_path = '/static')
app.debug = Tiesa
serveris = Serveris ()

Dabar išsaugokime kai kuriuos vartotojo įvestis į „CouchDB“:

@app.route ('/', metodai = ['GET', 'POST'])
def registras ():
vartotojas = {
"username": "žiniasklaidos svetainė",
"el. paštas": "[email protected]",
"slaptažodis": "encrypteddata"
}
db = serveris ['muocouch'] #pasirinkite duomenų bazę
doc_id, doc_rev = db.save (vartotojas) #išsaugokite savo duomenis duomenų bazėje
grįžti "

Dabar jūsų duomenys turėtų būti duomenų bazėje

"

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

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

rinkinys FLASK_ENV = plėtra

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

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

kolbos paleidimas

Tačiau kolba pagal numatytuosius nustatymus nurodo jūsų prievadą vietinis šeimininkas: 5000. Dabar turėtumėte pamatyti pranešimą H2 įkelkite šį 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 = funkcija (doc) 
{emit (doc.doc_rev, doc); }
myQuery = [docType] .query (db, map_func, Redu_fun = Nėra)

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

#Sukurkite dokumento objekto modelį pavadinimu „Vartotojai:"
klasės vartotojas (dokumentas):
doc_type = 'Vartotojas'
@app.route ('/', metodai = ['GET', 'POST'])
def registras ():
vartotojas = {
"username": "žiniasklaidos svetainė",
"el. paštas": "[email protected]",
"slaptažodis": "encrypteddata"
}
db = serveris ['muocouch'] #pasirinkite duomenų bazę
# Naudokite peržiūros funkciją, kad gautumėte duomenis iš „CouchDB“
map_func = funkcija (doc)
{emit (doc.doc_rev, doc); }
# Gaukite visus duomenis vykdydami užklausų rinkinį
myQuery = User.query (db, map_func, Redu_fun = Nėra, atvirkštinė = tiesa)
q = [i ['username'], skirtas i myQuery] # Išjunkite visus vartotojo vardus iš duomenų bazės
q2 = [i ['email'] for i in myQuery] # Išjunkite visus el. pašto adresus iš duomenų bazės
q3 = q+q2 # Sujunkite abi užklausas į vieną sąrašą
spausdinti (3 k.)
grįžti "

Dabar jūsų duomenys yra duomenų bazėje

"

Aukščiau pateiktas kodas naudoja Vartotojas klasę, kad pateiktų užklausą dėl rodinio funkcijos gautų duomenų. 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:

jei ne (vartotojas [„vartotojo vardas“] 3 -ame ketvirtyje arba vartotojas [„el. paštas“] 3 -ame ketvirtyje):
#išsaugokite savo duomenis duomenų bazėje, jei jų nėra
doc_id, doc_rev = db.save (vartotojas)
grįžti "

Užregistruota sėkmingai

"
Kitas:
grįžti "

Vartotojo vardas arba el. Pašto adresas yra

"

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ų. Tačiau 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„Tweet“Paštu
SQL vs. „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ų
Idowu 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