วิธีเชื่อมต่อแอพ Flask ของคุณกับ CouchDB: ฐานข้อมูล NoSQL

วิธีเชื่อมต่อแอพ Flask ของคุณกับ CouchDB: ฐานข้อมูล NoSQL

การเชื่อมต่อ Flask กับฐานข้อมูล SQL เช่น PostgreSQL และ SQLite นั้นเป็นเรื่องง่าย แต่เฟรมเวิร์กซิงค์ได้อย่างสมบูรณ์แบบกับฐานข้อมูล NoSQL เช่น CouchDB เช่นกัน และในฐานะข้อดีเพิ่มเติม คุณสามารถสืบค้นข้อมูลของคุณได้อย่างง่ายดายเมื่อคุณใช้ CouchDB กับ Flask





พร้อมที่จะเปลี่ยนแปลงโดยใช้ NoSQL เช่น CouchDB กับแอป Flask แล้วหรือยัง ต่อไปนี้คือวิธีตั้งค่า CouchDB บนเครื่องท้องถิ่นของคุณและเชื่อมต่อกับ Flask





CouchDB คืออะไร?

CouchDB เป็นฐานข้อมูล NoSQL ที่ Apache Software Foundation เป็นเจ้าของในปัจจุบัน เขียนโดย Erlang ซอฟต์แวร์นี้เปิดตัวครั้งแรกในปี 2548





แตกต่างจากฐานข้อมูลทั่วไปที่เชื่อมโยงกับตารางที่คุณคุ้นเคยมากที่สุด CouchDB เป็นระบบการจัดการฐานข้อมูลที่ไม่สัมพันธ์กันที่จัดเก็บข้อมูลเป็น JSON ดิบ

CouchDB ไม่มีการบล็อก ดังนั้นจึงไม่ล็อคฐานข้อมูลระหว่างป้อนข้อมูล จุดแข็งประการหนึ่งของ CouchDB คือใช้นโยบายควบคุมการทำงานพร้อมกันหลายเวอร์ชันเพื่ออ่านและเขียนข้อมูล ดังนั้นจึงอนุญาตให้อินพุตพร้อมกันจากผู้ใช้หลายคนโดยไม่มีการรบกวนจากโครงสร้างที่มีอยู่ของข้อมูลในฐานข้อมูล



ดังนั้น CouchDB จึงทำงานได้อย่างรวดเร็วในระหว่างการสอบถามและทำงานได้ง่ายโดยใช้วิธีการแบบอะซิงโครนัส ที่กล่าวว่าสิ่งนี้ไม่ได้ทำให้ดีกว่าคู่ SQL เทคโนโลยีแต่ละอย่างมีข้อดีและข้อเสีย

ตั้งค่า CouchDB

หากต้องการเริ่มใช้ CouchDB ให้ดาวน์โหลดและติดตั้งเวอร์ชันที่เข้ากันได้จาก เว็บไซต์อย่างเป็นทางการของ CouchDB .





และหากเวอร์ชันล่าสุดนั้นใช้ไม่ได้ผลสำหรับคุณ ให้ไปที่ แฟ้มเอกสาร CouchDB และดาวน์โหลดเวอร์ชัน 1.6.1 ซึ่งเป็นเวอร์ชันก่อนหน้าของ CouchDB

เมื่อคุณติดตั้ง CouchDB แล้ว ให้รันบนพีซีของคุณเหมือนกับที่คุณทำกับแอปเดสก์ท็อปอื่นๆ





เปิดเบราว์เซอร์ของคุณ จากนั้นเปิดเซิร์ฟเวอร์ของ CouchDB โดยวางข้อมูลต่อไปนี้ลงในแถบที่อยู่ของคุณ:

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

ตั้งค่า Python และ Flask

อย่างไรก็ตาม บทช่วยสอนนี้ถือว่าคุณได้ติดตั้ง Python บนพีซีของคุณแล้ว หรือไปที่ python.org และติดตั้ง Python เวอร์ชันล่าสุดบนพีซีของคุณ

เมื่อคุณตั้งค่า CouchDB แล้ว ให้สร้างโฟลเดอร์รูทของโปรเจ็กต์ จากนั้นเปิดบรรทัดคำสั่งของคุณไปยังไดเร็กทอรีนั้นแล้วสร้าง a สภาพแวดล้อมเสมือนของ Python .

ติดตั้ง Flask เวอร์ชันล่าสุดในพื้นที่เสมือนโดยใช้ pip :

ฉันจะเปลี่ยนบัญชี Google เริ่มต้นใน chrome ได้อย่างไร
pip install flask

เชื่อมต่อขวดกับ CouchDB

ในการเริ่มใช้ CouchDB กับแอพ Flask ของคุณ ให้ติดตั้ง กระติกน้ำ-โซฟาDB แพ็คเกจรันไทม์สำหรับเชื่อมต่อฐานข้อมูลกับ Flask

เพื่อทำสิ่งนี้:

pip install Flask-CouchDB

เมื่อคุณติดตั้ง กระติกน้ำ-โซฟาDB สำเร็จ สร้าง app.py ไฟล์ในโฟลเดอร์รูทนั้น ในทำนองเดียวกัน สร้าง a ฐานข้อมูล.py ไฟล์—จัดการการสร้างฐานข้อมูลของคุณ

เปิด ฐานข้อมูล.py และนำเข้าแพ็คเกจต่อไปนี้:

from couchdb import Server

ถัดไป สร้างฐานข้อมูลของคุณในไฟล์เดียวกันโดยใช้บล็อกของรหัสต่อไปนี้:

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

ดำเนินการ ฐานข้อมูล.py ผ่านทาง CLI จากนั้นเปิดหรือรีเฟรชเซิร์ฟเวอร์ภายในเครื่องของ CouchDB ผ่านเบราว์เซอร์ของคุณเหมือนกับที่คุณทำก่อนหน้านี้ ตอนนี้คุณควรเห็นฐานข้อมูล ( muocouch ในกรณีนี้) ระบุไว้ใน CouchDB

ที่เกี่ยวข้อง: วิธีเรียกใช้สคริปต์ Python

บันทึก: ตรวจสอบให้แน่ใจว่าคุณใช้หลักการตั้งชื่อตัวพิมพ์เล็กสำหรับฐานข้อมูล เนื่องจาก CouchDB อาจไม่ยอมรับตัวพิมพ์ใหญ่หรือตัวพิมพ์ใหญ่ผสมกัน

จัดเก็บข้อมูล CouchDB แรกของคุณโดยใช้ Flask

ท้ายที่สุดแล้ว วัตถุประสงค์ของฐานข้อมูลใดๆ ก็คือการจัดเก็บข้อมูล เมื่อคุณมีฐานข้อมูลใน CouchDB แล้ว คุณสามารถเริ่มจัดเก็บข้อมูลจากแอป Flask ได้ทันที

ในการเริ่มต้น ให้เปิด app.py และนำเข้าแพ็คเกจต่อไปนี้:

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

ถัดไป สร้างแอป Flask และอินสแตนซ์เซิร์ฟเวอร์ CouchDB:

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

ตอนนี้เรามาเก็บข้อมูลอินพุตของผู้ใช้บางส่วนไว้ใน 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

'

หากต้องการ คุณสามารถตั้งค่าเซิร์ฟเวอร์ Flask ของคุณเป็นโหมดการพัฒนาก่อนใช้งาน

ในการดำเนินการนี้ ให้เรียกใช้คำสั่งต่อไปนี้ผ่าน CLI ของคุณ:

set FLASK_ENV=development

โปรดทราบว่าการตั้งค่าโหมดเซิร์ฟเวอร์เป็นทางเลือก มันทำให้การดีบักโค้ดของคุณไม่ยุ่งยากเท่านั้น

แต่ไม่ว่าการตั้งค่าโหมดเซิร์ฟเวอร์จะเป็นอย่างไร ต่อไปนี้คือวิธีเริ่มเซิร์ฟเวอร์ Flask ผ่าน CMD:

flask run

อย่างไรก็ตาม Flask ตั้งค่าเริ่มต้นพอร์ตของคุณเป็น localhost:5000 . ตอนนี้คุณควรเห็นข้อความใน H2 แท็กเมื่อคุณโหลดที่อยู่นี้ผ่านเบราว์เซอร์ของคุณ

ตรวจสอบข้อมูลและตรวจสอบรายการซ้ำโดยใช้ CouchDB Queries

หากต้องการสร้างมาตรฐานมากกว่านี้ คุณสามารถใช้คิวรีเพื่อตรวจสอบอินพุตและป้องกันการซ้ำซ้อนในฐานข้อมูลของคุณ การสืบค้น CouchDB นั้นแตกต่างจากวิธีที่คุณดำเนินการกับฐานข้อมูล SQL เล็กน้อย

CouchDB ใช้สิ่งที่เรียกว่า 'มุมมอง JavaScript' เพื่อสืบค้นข้อมูลจากฐานข้อมูล โชคดีที่สิ่งนี้ค่อนข้างง่าย

ก่อนที่คุณจะดำเนินการต่อไป ต่อไปนี้คือลักษณะของมุมมองการสืบค้น CouchDB พื้นฐาน:

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

ตอนนี้ ลองใช้โค้ดด้านบนนี้ในทางปฏิบัติ:

#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

'

รหัสด้านบนใช้ ผู้ใช้ คลาสเพื่อสอบถามข้อมูลที่ดึงมาจากฟังก์ชันมุมมอง ใส่ใจกับพารามิเตอร์ภายในชุดแบบสอบถาม ( myQuery ).

การพิมพ์ q3 อย่างที่คุณทำข้างต้น ควรแสดงชื่อผู้ใช้และที่อยู่อีเมลทั้งหมดในฐานข้อมูลภายในบรรทัดคำสั่ง

ต่อไปนี้คือวิธีที่คุณสามารถใช้แบบสอบถามนี้เพื่อตรวจสอบการป้อนข้อมูลของผู้ใช้:

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

'

การรีเฟรชเบราว์เซอร์ของคุณจะส่งกลับ อื่น คำสั่งทุกครั้งที่คุณพยายามป้อนชื่อผู้ใช้หรืออีเมลที่มีอยู่ในฐานข้อมูล และหากคุณป้อนรหัสใหม่ จะเก็บข้อมูลของคุณได้สำเร็จโดยดำเนินการ ถ้า สภาพ.

ที่เกี่ยวข้อง: วิธีใช้ Python if Statement

แค่นั้นแหละ! คุณเพิ่งสร้างฐานข้อมูล NoSQL แรกของคุณโดยใช้ Flask-CouchDB

แม้ว่าการสร้างและการสืบค้นฐานข้อมูลใน CouchDB จะเกี่ยวข้องกับตัวอย่างที่เราเน้นที่นี่ คุณสามารถดูฟังก์ชันการทำงานของ Flask เพิ่มเติมได้ ตัวอย่างเช่น คุณสามารถหมุนช่องป้อนข้อมูลโดยใช้ wtforms และตั้งค่าสถานะซ้ำโดยใช้ข้อความของ Flask แฟลช .

คุณยังสามารถส่งต่อการสืบค้นของคุณไปยัง jQuery ของ JavaScript เพื่อตรวจสอบอินพุตและตรวจสอบรายการซ้ำแบบอะซิงโครนัส

CouchDB ดีกว่าฐานข้อมูล SQL หรือไม่?

การใช้ CouchDB หรือฐานข้อมูล NoSQL อื่นๆ กับ Flask หรือเทคโนโลยีการเขียนโปรแกรมอื่นๆ ขึ้นอยู่กับความชอบของคุณ แต่มันมีประโยชน์ในขณะที่จัดการกับข้อมูลที่ไม่มีโครงสร้างและสื่อดิบ

ก่อนที่คุณจะตัดสินใจ คุณอาจต้องการดูความแตกต่างระหว่างฐานข้อมูล NoSQL และ SQL เพื่อช่วยในการตัดสินใจว่าฐานข้อมูลใดเหมาะสำหรับโครงการของคุณ

แบ่งปัน แบ่งปัน ทวีต อีเมล SQL vs. NoSQL: ฐานข้อมูลที่ดีที่สุดสำหรับโครงการถัดไปของคุณคืออะไร?

การเลือกประเภทฐานข้อมูลอาจเป็นเรื่องยาก คุณควรเลือก SQL หรือ NoSQL?

อ่านต่อไป
หัวข้อที่เกี่ยวข้อง
  • การเขียนโปรแกรม
  • ฐานข้อมูล
  • การเขียนโปรแกรม
  • บทเรียนการเข้ารหัส
เกี่ยวกับผู้เขียน อิดิโซ โอมิโซลา(94 บทความที่ตีพิมพ์)

Idowu หลงใหลเกี่ยวกับเทคโนโลยีอัจฉริยะและประสิทธิภาพการทำงานทุกอย่าง ในเวลาว่าง เขาเล่นไปรอบๆ กับการเขียนโค้ดและเปลี่ยนไปเล่นกระดานหมากรุกเมื่อรู้สึกเบื่อ แต่เขาก็ชอบที่จะแยกตัวออกจากงานประจำบ้างเป็นบางครั้ง ความหลงใหลในการแสดงให้ผู้คนได้รู้จักเทคโนโลยีสมัยใหม่กระตุ้นให้เขาเขียนมากขึ้น

เพิ่มเติมจาก Idowu Omisola

สมัครรับจดหมายข่าวของเรา

เข้าร่วมจดหมายข่าวของเราสำหรับเคล็ดลับทางเทคนิค บทวิจารณ์ eBook ฟรี และดีลพิเศษ!

คลิกที่นี่เพื่อสมัครสมาชิก