Paano Ikonekta ang Iyong Flask App Sa CouchDB: Isang NoSQL Database

Paano Ikonekta ang Iyong Flask App Sa CouchDB: Isang NoSQL Database

Ang pagkonekta ng Flask sa mga database ng SQL tulad ng PostgreSQL at SQLite ay isang cinch. Ngunit ang balangkas ay ganap na nagsi-sync sa mga database ng NoSQL tulad ng CouchDB, din. At bilang isang idinagdag na benepisyo, maaari mong ma-query ang iyong data nang madali kapag ginamit mo ang CouchDB sa Flask.





Handa nang gumawa ng pagbabago sa pamamagitan ng paggamit ng isang NoSQL tulad ng CouchDB sa iyong Flask app? Narito kung paano i-set up ang CouchDB sa iyong lokal na makina at ikonekta ito sa Flask.





Ano ang CouchDB?

Ang CouchDB ay isang database ng NoSQL na kasalukuyang pagmamay-ari ng Apache Software Foundation. Isinulat kasama si Erlang, ang software ay unang inilabas noong 2005.





Hindi tulad ng regular na mga database na naka-link sa mesa na malamang na nakasanayan mo, ang CouchDB ay isang hindi pamamagitang sistema ng pamamahala ng database na nag-iimbak ng data bilang hilaw na JSON.

Ang CouchDB ay hindi naka-block, kaya't hindi nito nilo-lock ang database sa panahon ng pag-input ng data. Ang isa sa mga malalakas na puntos ng CouchDB ay ang paggamit nito ng isang multi-bersyon na patakaran sa kontrol ng concurrency upang mabasa at sumulat ng data. Kaya pinapayagan nito ang sabay-sabay na mga input mula sa maraming mga gumagamit nang walang pagkagambala mula sa umiiral na istraktura ng data sa database.



Kaya, ang CouchDB ay mabilis sa panahon ng mga query at madaling magtrabaho kasama ang paggamit ng mga hindi kasabay na pamamaraan. Sinabi na, hindi ito ginagawang mas mahusay kaysa sa katapat nitong SQL. Ang bawat teknolohiya ay may mga kalamangan at kahinaan.

Pag-set up ng CouchDB

Upang simulang gamitin ang CouchDB, mag-download at mag-install ng isang katugmang bersyon mula sa Opisyal na website ng CouchDB .





At kung ang pinakabagong bersyon na iyon ay hindi gagana para sa iyo, magpatuloy sa CouchDB archive at i-download ang bersyon 1.6.1, na kung saan ay isang mas naunang bersyon ng CouchDB.

Kapag na-install mo ang CouchDB, patakbuhin ito sa iyong PC tulad ng nais mong anumang iba pang desktop app.





Buksan ang iyong browser. Pagkatapos ay ilunsad ang server ng CouchDB sa pamamagitan ng pag-paste ng mga sumusunod sa iyong address bar:

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

I-set up ang Python at Flask

Gayunpaman, ang tutorial na ito ay ipinapalagay na mayroon ka ng naka-install na Python sa iyong PC. Kung hindi man, pumunta sa python.org at i-install ang pinakabagong bersyon ng Python sa iyong PC.

Kapag na-set up mo ang CouchDB, lumikha ng isang folder ng root ng proyekto. Pagkatapos buksan ang iyong linya ng utos sa direktoryo na iyon at lumikha ng isang Python virtual na kapaligiran .

I-install ang pinakabagong bersyon ng Flask sa virtual space na ginagamit pip :

ayoko ng matalinong tv
pip install flask

Ikonekta ang Flask Sa CouchDB

Upang simulang gamitin ang CouchDB sa iyong Flask app, i-install Flask-CouchDB , ang runtime package para sa pagkonekta sa database sa Flask.

Na gawin ito:

pip install Flask-CouchDB

Kapag na-install mo na Flask-CouchDB matagumpay, lumikha ng isang app.py file sa root folder na iyon. Katulad nito, lumikha ng a database.py file — hinahawakan nito ang iyong paggawa ng database.

Buksan database.py at i-import ang mga sumusunod na package:

from couchdb import Server

Susunod, likhain ang iyong database sa parehong file gamit ang sumusunod na bloke ng code:

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

Magpatupad database.py sa pamamagitan ng CLI. Pagkatapos buksan o i-refresh ang lokal na server ng CouchDB sa pamamagitan ng iyong browser tulad ng ginawa mo kanina. Dapat mo na ngayong makita ang database ( muocouch sa kasong ito) nakalista sa CouchDB.

Kaugnay: Paano Patakbuhin ang isang Python Script

Tandaan: Tiyaking gumagamit ka ng isang mas mababang kaso na kombensiyon sa pagbibigay ng pangalan para sa mga database, dahil maaaring hindi tanggapin ng CouchDB ang mga pang-itaas o halo-halong mga kaso.

Itabi ang Iyong Unang Data ng CouchDB Gamit ang Flask

Sa huli, ang layunin ng anumang database ay ang imbakan ng data. Kapag mayroon kang isang database sa CouchDB, maaari mong simulan ang pagtatago ng data dito mula sa iyong Flask app kaagad.

Upang magsimula, buksan app.py at i-import ang mga sumusunod na package:

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

Susunod, lumikha ng isang Flask app at CouchDB server na halimbawa:

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

Ngayon ay mag-imbak tayo ng ilang mga input ng gumagamit sa 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

'

Kung nais mo, maaari mong itakda ang iyong Flask server sa development mode bago ito patakbuhin.

Upang magawa ito, patakbuhin ang sumusunod na utos sa pamamagitan ng iyong CLI:

set FLASK_ENV=development

Tandaan na ang setting ng server mode ay opsyonal. Ginagawa lamang nitong pag-debug ang iyong code na walang abala.

Ngunit anuman ang setting ng mode ng server, narito kung paano simulan ang Flask server sa pamamagitan ng CMD:

flask run

Gayunpaman, ang flask ay nagde-default sa iyong port sa localhost: 5000 . Dapat mo na ngayong makita ang mensahe sa H2 sa sandaling na-load mo ang address na ito sa pamamagitan ng iyong browser.

Patunayan ang Data at Suriin ang Mga Duplikado Gamit ang CouchDB Queries

Upang ma-standardize pa ito, maaari mong gamitin ang mga query upang patunayan ang mga pag-input at maiwasan ang mga duplicate sa iyong database. Ang Querying CouchDB ay medyo naiiba mula sa kung paano mo ito ginagawa sa mga database ng SQL.

Gumagamit ang CouchDB ng tinatawag nitong 'Mga view ng JavaScript' upang magtanong ng data mula sa database. Sa kasamaang palad, ito ay medyo simple.

Bago ka pa sumulong, narito kung paano ang hitsura ng isang pangunahing pagtingin sa query ng CouchDB:

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

Ngayon ay gamitin natin nang praktikal ang code sa itaas:

#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

'

Ang code sa itaas ay gumagamit ng Gumagamit klase upang tanungin ang data na nakuha ng pag-andar ng view. Bigyang pansin ang mga parameter sa loob ng itinakdang query ( myQuery ).

Pagpi-print q3 , tulad ng ginawa mo sa itaas, dapat na ngayong maglabas ng lahat ng mga username at email address sa database sa loob ng linya ng utos.

Kaya narito kung paano mo magagamit ang query na ito upang mapatunayan ang mga input ng mga gumagamit:

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

'

Ang pagre-refresh ng iyong browser ay nagbabalik ng iba pa pahayag tuwing susubukan mong maglagay ng isang username o isang email na nasa database na. At kung magpapasok ka ng bago, matagumpay nitong iniimbak ang iyong data sa pamamagitan ng pagpapatupad ng kung kalagayan

Kaugnay: Paano Magamit ang Python kung Pahayag

Ayan yun! Nilikha mo lang ang iyong unang database ng NoSQL gamit ang Flask-CouchDB.

Bagaman ang paglikha at pag-query ng mga database sa CouchDB ay umiikot sa mga halimbawang na-highlight namin dito, maaari mo pang suriin ang mga pagpapaandar ni Flask. Halimbawa, maaari mong paikutin ang mga input na patlang gamit ang wtforms at i-flag ang mga duplicate gamit ang mensahe ni Flask flash .

Maaari mo ring ipasa ang iyong query sa jQuery ng JavaScript upang patunayan ang mga pag-input at suriin ang mga duplicate nang walang kasabay.

Mas Mahusay ba ang CouchDB Kaysa sa SQL Databases?

Ang paggamit ng CouchDB o anumang iba pang database ng NoSQL na may Flask o anumang iba pang teknolohiya sa pagprograma ay nakasalalay sa iyong kagustuhan. Ngunit madaling gamitin ito habang nakikipag-usap sa data na walang istraktura at raw media.

Sinabi nito, bago ka magpasya, baka gusto mong tingnan ang mga pagkakaiba sa pagitan ng mga database ng NoSQL at SQL upang matulungan kang magpasya kung alin sa mga ito ang angkop para sa iyong proyekto.

Magbahagi Magbahagi Mag-tweet Email SQL kumpara sa NoSQL: Ano ang Pinakamahusay na Database para sa Iyong Susunod na Proyekto?

Ang pagpili ng isang uri ng database ay maaaring maging nakakalito. Dapat mo bang piliin ang SQL o NoSQL?

Basahin Susunod
Mga Kaugnay na Paksa
  • Programming
  • database
  • Programming
  • Mga Tutorial sa Coding
Tungkol sa May-akda Idisou Omisola(94 na artikulong nalathala)

Si Idowu ay madamdamin tungkol sa anumang matalinong tech at pagiging produktibo. Sa kanyang libreng oras, naglalaro siya kasama ang pag-coding at paglipat sa chessboard kapag siya ay naiinip, ngunit gusto din niya ang paghihiwalay mula sa nakagawiang gawain sa isang sandali. Ang kanyang hilig sa pagpapakita sa mga tao ng paraan sa paligid ng modernong tech ay nag-uudyok sa kanya na magsulat pa.

Higit pa Mula sa Idowu Omisola

Mag-subscribe sa aming newsletter

Sumali sa aming newsletter para sa mga tip sa tech, pagsusuri, libreng ebook, at eksklusibong deal!

Mag-click dito upang mag-subscribe