Cách kết nối ứng dụng Flask của bạn với CouchDB: Cơ sở dữ liệu NoSQL

Cách kết nối ứng dụng Flask của bạn với CouchDB: Cơ sở dữ liệu NoSQL

Kết nối Flask với các cơ sở dữ liệu SQL như PostgreSQL và SQLite là một điều không thể. Nhưng khung công tác này cũng đồng bộ hóa hoàn hảo với cơ sở dữ liệu NoSQL như CouchDB. Và như một lợi ích bổ sung, bạn có thể truy vấn dữ liệu của mình một cách dễ dàng khi bạn sử dụng CouchDB với Flask.





Bạn đã sẵn sàng thực hiện thay đổi bằng cách sử dụng NoSQL như CouchDB với ứng dụng Flask của mình chưa? Đây là cách thiết lập CouchDB trên máy cục bộ của bạn và kết nối nó với Flask.





CouchDB là gì?

CouchDB là một cơ sở dữ liệu NoSQL hiện thuộc sở hữu của Apache Software Foundation. Được viết bởi Erlang, phần mềm được phát hành lần đầu tiên vào năm 2005.





Không giống như các cơ sở dữ liệu liên kết bảng thông thường mà bạn có nhiều khả năng đã sử dụng, CouchDB là một hệ thống quản lý cơ sở dữ liệu không quan hệ lưu trữ dữ liệu dưới dạng JSON thô.

CouchDB là không chặn, vì vậy nó không khóa cơ sở dữ liệu trong quá trình nhập dữ liệu. Một trong những điểm mạnh của CouchDB là nó sử dụng chính sách kiểm soát đồng thời nhiều phiên bản để đọc và ghi dữ liệu. Vì vậy, nó cho phép đầu vào đồng thời từ nhiều người dùng mà không bị can thiệp từ cấu trúc hiện có của dữ liệu trong cơ sở dữ liệu.



Do đó, CouchDB nhanh trong khi truy vấn và dễ làm việc trong khi sử dụng các phương thức không đồng bộ. Điều đó nói rằng, điều này không làm cho nó tốt hơn bất kỳ đối tác SQL nào của nó. Mỗi công nghệ đều có ưu và nhược điểm của nó.

Thiết lập CouchDB

Để bắt đầu sử dụng CouchDB, hãy tải xuống và cài đặt phiên bản tương thích từ Trang web chính thức của CouchDB .





Và nếu phiên bản mới nhất đó không phù hợp với bạn, hãy chuyển sang Kho lưu trữ CouchDB và tải xuống phiên bản 1.6.1, là phiên bản cũ hơn của CouchDB.

Sau khi bạn cài đặt CouchDB, hãy chạy nó trên PC giống như bạn làm với bất kỳ ứng dụng máy tính để bàn nào khác.





Mở trình duyệt của bạn. Sau đó khởi chạy máy chủ của CouchDB bằng cách dán thông tin sau vào thanh địa chỉ của bạn:

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

Thiết lập Python và Flask

Tuy nhiên, hướng dẫn này giả định rằng bạn đã cài đặt Python trên PC của mình. Nếu không, hãy đi tới python.org và cài đặt phiên bản Python mới nhất trên PC của bạn.

Sau khi bạn thiết lập CouchDB, hãy tạo một thư mục gốc của dự án. Sau đó, mở dòng lệnh của bạn đến thư mục đó và tạo Môi trường ảo Python .

Cài đặt phiên bản Flask mới nhất trong không gian ảo bằng cách sử dụng pip :

được rồi, google bật đèn pin của tôi lên
pip install flask

Kết nối bình với CouchDB

Để bắt đầu sử dụng CouchDB với ứng dụng Flask của bạn, hãy cài đặt Flask-CouchDB , gói thời gian chạy để kết nối cơ sở dữ liệu với Flask.

Để làm điều này:

pip install Flask-CouchDB

Sau khi bạn cài đặt Flask-CouchDB thành công, tạo một app.py tệp trong thư mục gốc đó. Tương tự, tạo một database.py tệp — điều này xử lý việc tạo cơ sở dữ liệu của bạn.

Mở ra database.py và nhập các gói sau:

from couchdb import Server

Tiếp theo, tạo cơ sở dữ liệu của bạn trong cùng một tệp đó bằng cách sử dụng khối mã sau:

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

Hành hình database.py thông qua CLI. Sau đó, mở hoặc làm mới máy chủ cục bộ của CouchDB thông qua trình duyệt của bạn như bạn đã làm trước đó. Bây giờ bạn sẽ thấy cơ sở dữ liệu ( muocouch trong trường hợp này) được liệt kê trong CouchDB.

Có liên quan: Cách chạy một tập lệnh Python

Ghi chú: Đảm bảo rằng bạn sử dụng quy ước đặt tên chữ thường cho cơ sở dữ liệu, vì CouchDB có thể không chấp nhận chữ hoa hoặc chữ thường.

Lưu trữ dữ liệu CouchDB đầu tiên của bạn bằng Flask

Cuối cùng, mục đích của bất kỳ cơ sở dữ liệu nào là lưu trữ dữ liệu. Sau khi có cơ sở dữ liệu trong CouchDB, bạn có thể bắt đầu lưu trữ dữ liệu vào đó từ ứng dụng Flask của mình ngay lập tức.

Để bắt đầu, hãy mở app.py và nhập các gói sau:

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

Tiếp theo, tạo một ứng dụng Flask và phiên bản máy chủ CouchDB:

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

Bây giờ, hãy lưu trữ một số đầu vào của người dùng vào 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

'

Nếu muốn, bạn có thể đặt máy chủ Flask của mình ở chế độ phát triển trước khi chạy nó.

Để thực hiện việc này, hãy chạy lệnh sau qua CLI của bạn:

set FLASK_ENV=development

Lưu ý rằng cài đặt chế độ máy chủ là tùy chọn. Nó chỉ làm cho việc gỡ lỗi mã của bạn không gặp rắc rối.

Nhưng bất kể cài đặt chế độ máy chủ là gì, đây là cách khởi động máy chủ Flask thông qua CMD:

flask run

Flask, tuy nhiên, mặc định cổng của bạn là localhost: 5000 . Bây giờ bạn sẽ thấy thông báo trong H2 khi bạn tải địa chỉ này qua trình duyệt của mình.

Xác thực dữ liệu và kiểm tra trùng lặp bằng cách sử dụng truy vấn CouchDB

Để chuẩn hóa điều này hơn nữa, bạn có thể sử dụng các truy vấn để xác thực đầu vào và ngăn các bản sao trong cơ sở dữ liệu của mình. Truy vấn CouchDB hơi khác so với cách bạn thực hiện việc này với cơ sở dữ liệu SQL.

CouchDB sử dụng cái mà nó gọi là 'các chế độ xem JavaScript' để truy vấn dữ liệu từ cơ sở dữ liệu. May mắn thay, điều này là tương đối đơn giản.

Trước khi bạn tiến xa hơn, đây là cách một dạng xem truy vấn CouchDB cơ bản trông như thế nào:

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

Bây giờ chúng ta hãy sử dụng đoạn mã trên một cách thực tế:

#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

'

Đoạn mã trên sử dụng Người sử dụng lớp để truy vấn dữ liệu được tìm nạp bởi chức năng xem. Hãy chú ý đến các tham số trong bộ truy vấn ( sự truy vấn của tôi ).

In ấn q3 , như bạn đã làm ở trên, bây giờ sẽ xuất tất cả tên người dùng và địa chỉ email trong cơ sở dữ liệu trong dòng lệnh.

Vì vậy, đây là cách bạn có thể sử dụng truy vấn này để xác thực thông tin đầu vào của người dùng:

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

'

Làm mới trình duyệt của bạn trả về khác tuyên bố mỗi khi bạn cố gắng nhập tên người dùng hoặc email đã có trong cơ sở dữ liệu. Và nếu bạn đang nhập một cái mới, nó sẽ lưu trữ thành công dữ liệu của bạn bằng cách thực thi nếu như tình trạng.

Có liên quan: Cách sử dụng Câu lệnh if trong Python

Đó là nó! Bạn vừa tạo cơ sở dữ liệu NoSQL đầu tiên của mình bằng Flask-CouchDB.

Mặc dù việc tạo và truy vấn cơ sở dữ liệu trong CouchDB xoay quanh các ví dụ mà chúng tôi đã đánh dấu ở đây, nhưng bạn có thể khám phá thêm các chức năng của Flask. Ví dụ: bạn có thể quay vòng các trường đầu vào bằng cách sử dụng wtforms và gắn cờ các bản sao bằng tin nhắn của Flask tốc biến .

Bạn thậm chí có thể chuyển truy vấn của mình sang jQuery của JavaScript để xác thực đầu vào và kiểm tra các bản sao không đồng bộ.

CouchDB có tốt hơn cơ sở dữ liệu SQL không?

Sử dụng CouchDB hoặc bất kỳ cơ sở dữ liệu NoSQL nào khác với Flask hoặc bất kỳ công nghệ lập trình nào khác tùy thuộc vào sở thích của bạn. Nhưng nó có ích khi xử lý dữ liệu không cấu trúc và phương tiện thô.

Điều đó nói rằng, trước khi quyết định, bạn có thể muốn xem xét sự khác biệt giữa cơ sở dữ liệu NoSQL và SQL để giúp bạn quyết định cái nào trong số chúng phù hợp với dự án của bạn.

Đăng lại Đăng lại tiếng riu ríu E-mail SQL so với NoSQL: Cơ sở dữ liệu tốt nhất cho dự án tiếp theo của bạn là gì?

Chọn một loại cơ sở dữ liệu có thể phức tạp. Bạn nên chọn SQL hay NoSQL?

Đọc tiếp
Chủ đề liên quan
  • Lập trình
  • cơ sở dữ liệu
  • Lập trình
  • Hướng dẫn viết mã
Giới thiệu về tác giả Idisou Omisola(Đã xuất bản 94 bài báo)

Idowu đam mê mọi thứ về công nghệ và năng suất thông minh. Trong thời gian rảnh rỗi, anh ấy chơi mã hóa và chuyển sang bàn cờ khi anh ấy buồn chán, nhưng anh ấy cũng thích thoát khỏi thói quen đôi khi. Niềm đam mê của anh ấy trong việc chỉ ra cho mọi người cách thức xung quanh công nghệ hiện đại đã thúc đẩy anh ấy viết nhiều hơn.

Xem thêm từ Idowu Omisola

Theo dõi bản tin của chúng tôi

Tham gia bản tin của chúng tôi để biết các mẹo công nghệ, đánh giá, sách điện tử miễn phí và các ưu đãi độc quyền!

Bấm vào đây để đăng ký