Bạn có thể sử dụng mongodb với bình không?

Python là một ngôn ngữ rất dễ học do cú pháp thân thiện với người dùng. Hơn nữa, Python có nhiều thư viện nguồn mở và hầu hết mọi trường hợp sử dụng Python đều có thư viện hiện có cho điều đó

Python có một số khung ứng dụng web như Django và Flask. Flask là một khung ứng dụng web Python mã nguồn mở, nhẹ

Flask được thiết kế để giúp bạn dễ dàng thiết lập và chạy một ứng dụng đơn giản

Chúng tôi sẽ sử dụng MongoDB làm cơ sở dữ liệu. MongoDB là một nền tảng cơ sở dữ liệu hướng tài liệu đa nền tảng. Nó sử dụng các đối tượng JSON làm bộ dữ liệu của nó

Khi làm việc với ứng dụng web, bạn có thể không biết chính xác định dạng dữ liệu được gửi. Trong những trường hợp như vậy, một cơ sở dữ liệu NoSQL như MongoDB sẽ là một giải pháp tốt để xử lý và lưu trữ dữ liệu

Trong bài viết này, chúng ta sẽ tạo một ứng dụng ghi chú đơn giản bằng Flask và MongoDB

điều kiện tiên quyết

Để theo dõi bài viết này, các thông tin cơ bản sau đây sẽ rất cần thiết

  • Kiến thức cơ bản về làm việc với Python
  • Python được cài đặt trên máy tính của bạn
  • MongoDB được cài đặt trên máy tính của bạn
  • Pip được cài đặt trên máy tính của bạn

Thiết lập ứng dụng Flask

Chúng tôi sẽ sử dụng virtualenv để thiết lập ứng dụng. Virtualenv là một công cụ để tạo môi trường Python độc lập. Nó ngăn cài đặt toàn cầu các phụ thuộc chỉ được sử dụng trong một ứng dụng

Chạy lệnh bên dưới để cài đặt virtualenv

pip install virtualenv

Để kiểm tra xem virtualenv đã được cài đặt đúng chưa, hãy chạy lệnh sau

virtualenv --version

Để bắt đầu, hãy chạy lệnh sau trong thư mục dự án nơi bạn muốn dự án cư trú

virtualenv venv

Nếu môi trường không được kích hoạt tự động bằng cách có tên thư mục dự án của bạn ở phía bên trái, thì hãy chạy lệnh sau để kích hoạt nó

source venv/bin/activate

Sau khi được kích hoạt, chúng tôi cần hai phụ thuộc

  • bình - Điều cần thiết để thiết lập tài nguyên web
  • PyMongo - Điều này sẽ hình thành cơ sở hạ tầng từ MongoDB cho ứng dụng của chúng tôi

Để cài đặt các phụ thuộc, hãy sử dụng lệnh bên dưới

pip install flask PyMongo

Thiết lập MongoDB

Để bắt đầu thiết lập MongoDB trong ứng dụng của mình, chúng ta cần tạo một tệp

virtualenv --version
9 tại thư mục gốc của dự án. Đây sẽ là tập tin chính của chúng tôi

Trong tệp

virtualenv --version
9 này, hãy thêm khối mã sau

from flask import Flask
from flask_pymongo import PyMongo

app = Flask(__name__)
app.config["MONGO_URI"] = "mongodb://localhost:27017/flaskCrashCourse"
mongo = PyMongo(app)

if __name__ == "__main__":
    app.run(debug=True)

Ở đây, chúng tôi đã thực hiện cấu hình cơ bản cho một ứng dụng Flask cơ bản. Chúng tôi;

  • Đã nhập các gói cần thiết
  • Thiết lập biến
    virtualenv venv
    
    1 chính
  • Đã khởi tạo một thể hiện của
    virtualenv venv
    
    2
  • Bắt đầu ứng dụng ở chế độ
    virtualenv venv
    
    3. Điều này có nghĩa là mỗi thay đổi chúng tôi thực hiện đối với ứng dụng sẽ được tải lại tự động

Để kiểm tra điều này, hãy chạy lệnh bên dưới

virtualenv --version
1

Lệnh trên sẽ khởi động ứng dụng. Bạn có thể truy cập nó từ cổng số 5000; . e.

virtualenv venv
4. Hiện tại, bạn sẽ nhận được thông báo
virtualenv venv
5 vì chúng tôi chưa xác định bất kỳ tuyến đường nào

Hãy để chúng tôi đạt được điều đó trong bước tiếp theo

Thiết lập các tuyến đường

Trước tiên, chúng ta hãy nhập mô-đun

virtualenv venv
6 từ
virtualenv venv
7

virtualenv --version
6

Chúng tôi sẽ có bốn tuyến đường

  • Lộ trình tìm nạp ghi chú
  • Lộ trình thêm ghi chú
  • Lộ trình chỉnh sửa ghi chú
  • Lộ trình xóa ghi chú

Hãy để chúng tôi bắt đầu bằng cách thêm tuyến đường để tìm nạp ghi chú. Đây sẽ là trang chủ

Thêm phần sau vào tệp

virtualenv --version
9 của bạn

virtualenv --version
8

Bất cứ khi nào một người truy cập trang chủ (/), trình trang trí sẽ thực thi chức năng bên dưới, hàm này sẽ trả về một đoạn văn

Hãy để chúng tôi làm tương tự cho tuyến đường

virtualenv venv
9, tuyến đường
source venv/bin/activate
0 và tuyến đường
source venv/bin/activate
1 bằng cách thêm đoạn mã sau

virtualenv venv
2

Tuyến đường

virtualenv venv
9 chấp nhận hai phương thức;

Áp dụng tương tự cho

source venv/bin/activate
0;

Tại thời điểm này, chúng tôi chỉ trả lại các đoạn văn cho các trang. Chúng tôi cần trả lại nhiều nội dung trực quan hơn và xử lý logic nhận xét cho các tuyến không trả lại trang. Chúng tôi làm điều này trong bước tiếp theo

Thêm logic và mẫu vào các tuyến đường

Đầu tiên, chúng tôi sẽ nhập mô-đun

source venv/bin/activate
8 và
source venv/bin/activate
9 từ
virtualenv venv
7

virtualenv --version
0

Như tên gợi ý,

source venv/bin/activate
8 sẽ tải tệp mẫu
pip install flask PyMongo
2 và
source venv/bin/activate
9 sẽ được gọi khi chuyển hướng từ tuyến này sang tuyến khác, đặc biệt là những tuyến không trả lại trang

Làm việc trên các mẫu

Trong thư mục gốc của dự án, tạo một thư mục và đặt tên là

pip install flask PyMongo
4. Bên trong thư mục, tạo tệp
pip install flask PyMongo
5 và thêm đoạn mã sau

virtualenv --version
1

Để nâng cao khả năng sử dụng lại mã, tất cả các mẫu sẽ được tải từ một tệp cơ sở. Hơn nữa, vì Flask sử dụng Jinja để tạo khuôn mẫu nên nội dung động sẽ được tải trên mỗi trang

Theo tệp ở trên, chỉ có

pip install flask PyMongo
6 và
pip install flask PyMongo
7 sẽ khác nhau cho mỗi trang và đó là những gì chúng tôi muốn trong ứng dụng đơn giản của mình

Lộ trình trang chủ

Trong thư mục mẫu, tạo thư mục

pip install flask PyMongo
8. Bên trong, tạo tệp
pip install flask PyMongo
9 và thêm mã bên dưới

virtualenv --version
2

Trong tệp trên, chúng tôi là

  • Mở rộng tệp cơ sở mà chúng tôi đã tạo trước đó
  • Đặt tiêu đề của trang
  • Đặt phần thân của trang, bao gồm kiểm tra xem chúng tôi đã thêm ghi chú chưa. Nếu có, chúng tôi lặp qua chúng hoặc chúng tôi đưa ra thông báo và lời kêu gọi hành động. Đối với mỗi ghi chú, chúng tôi đang hiển thị ngày tạo, tiêu đề và mô tả của nó

Trong

virtualenv --version
9, chỉnh sửa chức năng tuyến đường
from flask import Flask
from flask_pymongo import PyMongo

app = Flask(__name__)
app.config["MONGO_URI"] = "mongodb://localhost:27017/flaskCrashCourse"
mongo = PyMongo(app)

if __name__ == "__main__":
    app.run(debug=True)
1 như hình bên dưới

virtualenv --version
3

Trong hàm

from flask import Flask
from flask_pymongo import PyMongo

app = Flask(__name__)
app.config["MONGO_URI"] = "mongodb://localhost:27017/flaskCrashCourse"
mongo = PyMongo(app)

if __name__ == "__main__":
    app.run(debug=True)
2, chúng tôi là

  • Tìm nạp các ghi chú từ cơ sở dữ liệu;
  • Trả lại chế độ xem, truyền dữ liệu.
    from flask import Flask
    from flask_pymongo import PyMongo
    
    app = Flask(__name__)
    app.config["MONGO_URI"] = "mongodb://localhost:27017/flaskCrashCourse"
    mongo = PyMongo(app)
    
    if __name__ == "__main__":
        app.run(debug=True)
    
    3 và
    from flask import Flask
    from flask_pymongo import PyMongo
    
    app = Flask(__name__)
    app.config["MONGO_URI"] = "mongodb://localhost:27017/flaskCrashCourse"
    mongo = PyMongo(app)
    
    if __name__ == "__main__":
        app.run(debug=True)
    
    4 cho thanh điều hướng để đặt trang hoạt động và
    from flask import Flask
    from flask_pymongo import PyMongo
    
    app = Flask(__name__)
    app.config["MONGO_URI"] = "mongodb://localhost:27017/flaskCrashCourse"
    mongo = PyMongo(app)
    
    if __name__ == "__main__":
        app.run(debug=True)
    
    5 cho dữ liệu được tìm nạp

Để kiểm tra tuyến đường về nhà này, hãy đảm bảo ứng dụng của bạn đang chạy và làm mới trang trên trình duyệt. Vì bạn không có bất kỳ ghi chú nào được thêm vào, bạn sẽ nhận được một tin nhắn và lời kêu gọi hành động

Lộ trình thêm ghi chú

Trong

from flask import Flask
from flask_pymongo import PyMongo

app = Flask(__name__)
app.config["MONGO_URI"] = "mongodb://localhost:27017/flaskCrashCourse"
mongo = PyMongo(app)

if __name__ == "__main__":
    app.run(debug=True)
6, tạo một tệp
from flask import Flask
from flask_pymongo import PyMongo

app = Flask(__name__)
app.config["MONGO_URI"] = "mongodb://localhost:27017/flaskCrashCourse"
mongo = PyMongo(app)

if __name__ == "__main__":
    app.run(debug=True)
7. Trong tập tin này, thêm đoạn mã sau

virtualenv --version
4

Trong tệp trên, chúng tôi là;

  • Mở rộng tệp
    pip install flask PyMongo
    
    5 chung
  • Đặt tiêu đề
  • Đặt nội dung, là biểu mẫu có tiêu đề và trường mô tả

Trong

virtualenv --version
9, sửa hàm
virtualenv --version
10 như sau

virtualenv --version
5

Khi chúng tôi có một cuộc gọi

source venv/bin/activate
3 trong chức năng trên, chúng tôi chỉ cần trả lại một chế độ xem với các biến cấu hình thanh điều hướng

Khi chúng tôi có cuộc gọi

source venv/bin/activate
4, chúng tôi sẽ nhận dữ liệu được gửi từ biểu mẫu, lưu nó vào cơ sở dữ liệu và chuyển hướng đến trang chủ

Để kiểm tra chức năng, hãy đảm bảo rằng máy chủ phát triển đang chạy và làm mới trang

virtualenv venv
9. Bạn sẽ thấy một biểu mẫu, khi bạn điền và gửi nó, bạn sẽ được chuyển hướng đến trang chủ;

Lộ trình chỉnh sửa ghi chú

Trong thư mục

from flask import Flask
from flask_pymongo import PyMongo

app = Flask(__name__)
app.config["MONGO_URI"] = "mongodb://localhost:27017/flaskCrashCourse"
mongo = PyMongo(app)

if __name__ == "__main__":
    app.run(debug=True)
6, tạo tệp
virtualenv --version
15. Trong tệp, thêm đoạn mã sau

virtualenv --version
6

Trong tệp ở trên, chúng tôi mở rộng tệp

pip install flask PyMongo
5 phổ biến, thêm tiêu đề và nội dung cơ thể;

Trong

virtualenv --version
9, sửa hàm
virtualenv --version
18 như sau

virtualenv --version
7

Trong chức năng trên, chúng tôi có hai cuộc gọi

  • Một cuộc gọi
    source venv/bin/activate
    
    3, nơi chúng tôi nhận được các chi tiết ghi chú từ cơ sở dữ liệu bằng cách sử dụng id của nó và hiển thị biểu mẫu bằng các chi tiết đó
  • Một cuộc gọi
    source venv/bin/activate
    
    4, nơi chúng tôi nhận được các chi tiết cập nhật từ biểu mẫu và cập nhật ghi chú từ cơ sở dữ liệu, sau đó bạn được chuyển hướng đến trang chủ

Để kiểm tra chức năng này

  • Đảm bảo máy chủ phát triển đang chạy
  • Làm mới trang chủ
  • Đối với bất kỳ ghi chú nào, hãy nhấp vào chỉnh sửa, chỉnh sửa bất kỳ trường nào rồi nhấn
    virtualenv --version
    
    61. Các chi tiết mới nên được phản ánh

Lộ trình xóa ghi chú

Trong

virtualenv --version
9, chỉnh sửa
virtualenv --version
63 như sau

virtualenv --version
8

Từ chức năng trên, chúng tôi sẽ xóa

virtualenv --version
64 của ghi chú, xóa nó khỏi cơ sở dữ liệu và chuyển hướng nó đến trang chủ

Tôi nên sử dụng cơ sở dữ liệu nào với Flask?

Flask có thể sử dụng SQLite và MySQL làm cơ sở dữ liệu phụ trợ. Chúng tôi khuyên bạn nên sử dụng SQLAlchemy làm ORM với các cơ sở dữ liệu quan hệ này.

Flask có hỗ trợ NoSQL không?

Việc kết nối Flask với cơ sở dữ liệu SQL như PostgreSQL và SQLite thật dễ dàng. Nhưng khung cũng đồng bộ 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ể dễ dàng truy vấn dữ liệu của mình khi sử dụng CouchDB với Flask.

MongoDB có thể được sử dụng với Python không?

MongoDB là cơ sở dữ liệu hướng tài liệu được phân loại là NoSQL. Nó đã trở nên phổ biến trong toàn ngành trong những năm gần đây và tích hợp cực kỳ tốt với Python . Không giống như các RDBMS SQL truyền thống, MongoDB sử dụng các tập tài liệu thay vì các bảng hàng để tổ chức và lưu trữ dữ liệu.

Tôi có thể sử dụng cầy mangut với Flask không?

Bạn có thể sử dụng MongoEngine một cách độc lập mà không cần dựa vào Flask, nhưng bạn có thể sử dụng nó kết hợp với Flask . Sau khi bạn định cấu hình thông tin mongodb, bạn có thể tạo mô hình dữ liệu bằng MongoEngine.