Tác giả đã chọn quỹ nguồn mở và miễn phí để nhận quyên góp như một phần của chương trình Write for quyên góp.
Giới thiệu
Trong các ứng dụng web, bạn thường cần một cơ sở dữ liệu, là một bộ sưu tập dữ liệu có tổ chức. Bạn sử dụng cơ sở dữ liệu để lưu trữ và duy trì dữ liệu liên tục có thể được truy xuất và thao tác hiệu quả. Ví dụ: trong một ứng dụng truyền thông xã hội, bạn có một cơ sở dữ liệu trong đó dữ liệu người dùng (thông tin cá nhân, bài đăng, nhận xét, người theo dõi) được lưu trữ theo cách có thể được thao tác hiệu quả. Bạn có thể thêm dữ liệu vào cơ sở dữ liệu, truy xuất nó, sửa đổi nó hoặc xóa nó, tùy thuộc vào các yêu cầu và điều kiện khác nhau. Trong một ứng dụng web, các yêu cầu này có thể là người dùng thêm một bài đăng mới, xóa một bài đăng hoặc xóa tài khoản của họ, có thể hoặc không xóa bài đăng của họ. Các hành động bạn thực hiện để thao tác dữ liệu sẽ phụ thuộc vào các tính năng cụ thể trong ứng dụng của bạn. Ví dụ: bạn có thể không muốn người dùng thêm bài đăng không có tiêu đề.
Flask là một khung web Python nhẹ, cung cấp các công cụ và tính năng hữu ích để tạo các ứng dụng web bằng ngôn ngữ Python. MongoDB là một chương trình cơ sở dữ liệu NoQuery, định hướng tài liệu chung, sử dụng các tài liệu giống JSON để lưu trữ dữ liệu. Không giống như các mối quan hệ dạng bảng được sử dụng trong cơ sở dữ liệu quan hệ, các tài liệu giống như JSON cho phép các lược đồ linh hoạt và động trong khi duy trì sự đơn giản. Nói chung, cơ sở dữ liệu NoQuery có khả năng mở rộng theo chiều ngang, làm cho chúng phù hợp cho dữ liệu lớn và các ứng dụng thời gian thực.
Trong hướng dẫn này, bạn sẽ xây dựng một ứng dụng Web Danh sách việc làm nhỏ để trình bày cách sử dụng Thư viện Pymongo, trình điều khiển cơ sở dữ liệu MongoDB cho phép bạn tương tác với cơ sở dữ liệu MongoDB của bạn trong Python. Bạn sẽ sử dụng nó với bình để thực hiện các tác vụ cơ bản, chẳng hạn như kết nối với máy chủ cơ sở dữ liệu, tạo các bộ sưu tập lưu trữ một nhóm tài liệu trong MongoDB, chèn dữ liệu vào bộ sưu tập và truy xuất và xóa dữ liệu khỏi bộ sưu tập.
Điều kiện tiên quyết
Môi trường lập trình Python 3 cục bộ, hãy làm theo hướng dẫn để phân phối của bạn trong cách cài đặt và thiết lập môi trường lập trình cục bộ cho Sê -ri Python 3. Trong hướng dẫn này, chúng tôi sẽ gọi thư mục dự án của chúng tôi
- nano app.py
MongoDB được cài đặt trên máy cục bộ của bạn. Thực hiện theo cách cài đặt MongoDB trên hướng dẫn Ubuntu 20.04 để thiết lập cơ sở dữ liệu MongoDB của bạn.
Một sự hiểu biết về các khái niệm bình cơ bản, chẳng hạn như các tuyến đường, xem các chức năng và mẫu. Nếu bạn không quen thuộc với bình, hãy xem cách tạo ứng dụng web đầu tiên của bạn bằng Flask và Python và cách sử dụng các mẫu trong ứng dụng bình.
Một sự hiểu biết về các khái niệm HTML cơ bản. Bạn có thể xem lại cách xây dựng một trang web với loạt hướng dẫn HTML để biết kiến thức nền.
Bước 1 - Thiết lập pymongo và bình
Trong bước này, bạn sẽ cài đặt bình và thư viện pymongo.
Với môi trường ảo được kích hoạt, sử dụng
- nano app.py
- pip install Flask pymongo
Sau khi cài đặt được hoàn thành thành công, bạn sẽ thấy một dòng tương tự như sau ở cuối đầu ra:
Output
Successfully installed Flask-2.0.2 Jinja2-3.0.3 MarkupSafe-2.0.1 Werkzeug-2.0.2 click-8.0.3 itsdangerous-2.0.1 pymongo-4.0.1Bây giờ bạn đã cài đặt các gói Python cần thiết, bạn sẽ kết nối với máy chủ MongoDB của mình và tạo một bộ sưu tập.
Bước 2 - Kết nối với máy chủ MongoDB và tạo bộ sưu tập
Trong bước này, bạn sẽ sử dụng thư viện Pymongo để tạo máy khách mà bạn sẽ sử dụng để tương tác với máy chủ MongoDB của mình, tạo cơ sở dữ liệu và sau đó tạo một bộ sưu tập để lưu trữ TODOS của bạn.
Với môi trường lập trình của bạn được kích hoạt, hãy mở một tệp có tên
- nano app.py
- nano app.py
- nano app.py
Tệp này sẽ nhập lớp cần thiết và người trợ giúp từ Flask và Thư viện Pymongo. Bạn sẽ tương tác với máy chủ MongoDB của mình để tạo cơ sở dữ liệu và tạo một bộ sưu tập cho TODOS. Thêm mã sau vào
- nano app.py
flask_app/app.py
from flask import Flask from pymongo import MongoClient app = Flask(__name__) client = MongoClient('localhost', 27017) db = client.flask_db todos = db.todosLưu và đóng tập tin.
Ở đây bạn nhập lớp from flask import Flask from pymongo import MongoClient app = Flask(__name__) client = MongoClient('localhost', 27017) db = client.flask_db todos = db.todos 2 mà bạn sử dụng để tạo một thể hiện ứng dụng bình được gọi là from flask import Flask from pymongo import MongoClient app = Flask(__name__) client = MongoClient('localhost', 27017) db = client.flask_db todos = db.todos 3.
Bạn nhập from flask import Flask from pymongo import MongoClient app = Flask(__name__) client = MongoClient('localhost', 27017) db = client.flask_db todos = db.todos 4 mà bạn sử dụng để tạo đối tượng máy khách cho phiên bản MongoDB có tên from flask import Flask from pymongo import MongoClient app = Flask(__name__) client = MongoClient('localhost', 27017) db = client.flask_db todos = db.todos 5, cho phép bạn kết nối và tương tác với máy chủ MongoDB của bạn. Khi bạn khởi tạo from flask import Flask from pymongo import MongoClient app = Flask(__name__) client = MongoClient('localhost', 27017) db = client.flask_db todos = db.todos 6, bạn chuyển nó vào máy chủ của máy chủ MongoDB của bạn, đó là from flask import Flask from pymongo import MongoClient app = Flask(__name__) client = MongoClient('localhost', 27017) db = client.flask_db todos = db.todos 7 trong trường hợp của chúng tôi và cổng, đó là from flask import Flask from pymongo import MongoClient app = Flask(__name__) client = MongoClient('localhost', 27017) db = client.flask_db todos = db.todos 8 ở đây.
Note:
Chúng tôi khuyên bạn nên cứng người bảo mật cài đặt MongoDB của mình bằng cách làm theo hướng dẫn của chúng tôi về cách bảo mật MongoDB trên Ubuntu 20.04. Khi nó được bảo mật, sau đó bạn có thể định cấu hình MongoDB để chấp nhận các kết nối từ xa.strongly recommended that you harden your MongoDB installation’s security by following our guide on How To Secure MongoDB on Ubuntu 20.04. Once it’s secured, you could then configure MongoDB to accept remote connections.
Khi bạn bật xác thực trong MongoDB, bạn sẽ cần phải vượt qua các tham số from flask import Flask from pymongo import MongoClient app = Flask(__name__) client = MongoClient('localhost', 27017) db = client.flask_db todos = db.todos 9 và client = MongoClient('localhost', 27017, username='username', password='password') 0 khi tạo một thể hiện from flask import Flask from pymongo import MongoClient app = Flask(__name__) client = MongoClient('localhost', 27017) db = client.flask_db todos = db.todos 6 như vậy:
client = MongoClient('localhost', 27017, username='username', password='password')Sau đó, bạn sử dụng thể hiện from flask import Flask from pymongo import MongoClient app = Flask(__name__) client = MongoClient('localhost', 27017) db = client.flask_db todos = db.todos 5 để tạo cơ sở dữ liệu MongoDB gọi là client = MongoClient('localhost', 27017, username='username', password='password') 3 và lưu tham chiếu đến nó trong một biến gọi là client = MongoClient('localhost', 27017, username='username', password='password') 4.
Sau đó, bạn tạo một bộ sưu tập có tên client = MongoClient('localhost', 27017, username='username', password='password') 5 trên cơ sở dữ liệu client = MongoClient('localhost', 27017, username='username', password='password') 3 bằng cách sử dụng biến client = MongoClient('localhost', 27017, username='username', password='password') 4. Bộ sưu tập lưu trữ một nhóm các tài liệu trong MongoDB, như các bảng trong cơ sở dữ liệu quan hệ.
Trong MongoDB, cơ sở dữ liệu và bộ sưu tập được tạo ra một cách lười biếng. Điều này có nghĩa là ngay cả khi bạn thực thi tệp
- nano app.py
Để có được danh sách các cơ sở dữ liệu hiện tại của bạn, hãy mở một thiết bị đầu cuối mới và khởi động shell
- mongo
- mongo
Lời nhắc sẽ được mở, bạn có thể kiểm tra cơ sở dữ liệu của mình bằng lệnh sau:
- show dbs
Đầu ra, nếu đây là bản cài đặt mới của MongoDB, sẽ liệt kê cơ sở dữ liệu
- mongo
- mongo
- mongo
Bạn có thể nhận thấy rằng client = MongoClient('localhost', 27017, username='username', password='password') 3 không tồn tại. Để lại vỏ
- mongo
Bước 3 - Tạo một trang web để thêm và hiển thị TODOS
Trong bước này, bạn sẽ tạo một trang web với một biểu mẫu web cho phép người dùng thêm TODO và hiển thị chúng trên cùng một trang.
Với môi trường lập trình của bạn được kích hoạt, hãy mở tệp
- nano app.py
- nano app.py
Đầu tiên, thêm các nhập khẩu sau từ
- mongo
flask_app/app.py
from flask import Flask, render_template, request, url_for, redirect from pymongo import MongoClient # ...Ở đây, bạn nhập chức năng
- show dbs
- show dbs
- show dbs
- show dbs
Sau đó thêm tuyến sau ở cuối tệp:
flask_app/app.py
# ... @app.route('/', methods=('GET', 'POST')) def index(): return render_template('index.html')Lưu và đóng tập tin.
Trong tuyến đường này, bạn chuyển Tuple
- show dbs
- show dbs
- show dbs
- show dbs
Tiếp theo Tạo một thư mục mẫu trong thư mục
- nano app.py
- show dbs
Output
Successfully installed Flask-2.0.2 Jinja2-3.0.3 MarkupSafe-2.0.1 Werkzeug-2.0.2 click-8.0.3 itsdangerous-2.0.1 pymongo-4.0.1 0Thêm mã sau bên trong tệp
- show dbs
flask_app/templates/index.html
Output
Successfully installed Flask-2.0.2 Jinja2-3.0.3 MarkupSafe-2.0.1 Werkzeug-2.0.2 click-8.0.3 itsdangerous-2.0.1 pymongo-4.0.1 1Lưu và đóng tập tin.
Trong tuyến đường này, bạn chuyển Tuple
- show dbs
- show dbs
- show dbs
- show dbs
Tiếp theo Tạo một thư mục mẫu trong thư mục
- nano app.py
- show dbs
Output
Successfully installed Flask-2.0.2 Jinja2-3.0.3 MarkupSafe-2.0.1 Werkzeug-2.0.2 click-8.0.3 itsdangerous-2.0.1 pymongo-4.0.1 2Thêm mã sau bên trong tệp
- show dbs
Output
Successfully installed Flask-2.0.2 Jinja2-3.0.3 MarkupSafe-2.0.1 Werkzeug-2.0.2 click-8.0.3 itsdangerous-2.0.1 pymongo-4.0.1 3Ở đây bạn có một trang HTML cơ bản với một tiêu đề, một số phong cách, tiêu đề và biểu mẫu web. Trong biểu mẫu Web, bạn đặt thuộc tính
1 thành
2 để chỉ ra rằng biểu mẫu sẽ gửi yêu cầu POST. Bạn có một trường đầu vào văn bản cho nội dung TODO với tên
3 mà bạn sẽ sử dụng để truy cập dữ liệu tiêu đề trong tuyến đường
6 của bạn. Bạn cũng có hai nút radio HTML có tên
5, cho phép người dùng chỉ định mức độ quan trọng đối với mỗi mục việc cần làm: họ có thể chọn tùy chọn quan trọng hoặc tùy chọn không quan trọng khi tạo một việc todo. Cuối cùng, bạn có một nút gửi ở cuối biểu mẫu. You might receive a from flask import Flask, render_template, request, url_for, redirect
from pymongo import MongoClient
# ...
1 error when attempting to run the application. To fix this, deactivate your virtual environment and reactivate it. Then run the from flask import Flask, render_template, request, url_for, redirect
from pymongo import MongoClient
# ...
2 command again.
Mặc dù trong thư mục
- nano app.py
- nano app.py
- nano app.py
- nano app.py
Output
Successfully installed Flask-2.0.2 Jinja2-3.0.3 MarkupSafe-2.0.1 Werkzeug-2.0.2 click-8.0.3 itsdangerous-2.0.1 pymongo-4.0.1 4Tiếp theo, chạy ứng dụng:Submit button.
Lưu ý: Bạn có thể nhận được lỗi from flask import Flask, render_template, request, url_for, redirect from pymongo import MongoClient # ... 1 khi cố gắng chạy ứng dụng. Để khắc phục điều này, hủy kích hoạt môi trường ảo của bạn và kích hoạt lại nó. Sau đó chạy lại lệnh from flask import Flask, render_template, request, url_for, redirect from pymongo import MongoClient # ... 2.
Nếu bạn điền vào biểu mẫu và gửi nó, gửi yêu cầu bài đăng đến máy chủ, không có gì xảy ra vì bạn không xử lý các yêu cầu POST trên tuyến
- show dbs
Để máy chủ chạy và mở một cửa sổ thiết bị đầu cuối mới.
Mở
- nano app.py
- nano app.py
Chỉnh sửa tuyến đường
- show dbs
flask_app/app.py
Output
Successfully installed Flask-2.0.2 Jinja2-3.0.3 MarkupSafe-2.0.1 Werkzeug-2.0.2 click-8.0.3 itsdangerous-2.0.1 pymongo-4.0.1 6Lưu và đóng tập tin.
Trong những thay đổi này, bạn xử lý các yêu cầu POST bên trong điều kiện from flask import Flask, render_template, request, url_for, redirect from pymongo import MongoClient # ... 6. Bạn trích xuất Nội dung TODO và mức độ quan trọng mà người dùng gửi từ đối tượng from flask import Flask, render_template, request, url_for, redirect from pymongo import MongoClient # ... 7.
Bạn sử dụng phương thức from flask import Flask, render_template, request, url_for, redirect from pymongo import MongoClient # ... 8 trên bộ sưu tập Todos để thêm tài liệu việc cần làm vào đó. Bạn cung cấp dữ liệu việc làm trong từ điển Python, đặt from flask import Flask, render_template, request, url_for, redirect from pymongo import MongoClient # ... 9 thành giá trị mà người dùng đã gửi trong trường văn bản cho nội dung TODO và đặt khóa # ... @app.route('/', methods=('GET', 'POST')) def index(): return render_template('index.html') 0 thành giá trị của nút radio mà người dùng chọn. Sau đó, bạn chuyển hướng đến trang Index, sẽ làm mới trang và hiển thị mục TODO mới được thêm.
Để hiển thị tất cả các TODO đã lưu, bạn sử dụng phương thức # ... @app.route('/', methods=('GET', 'POST')) def index(): return render_template('index.html') 1 bên ngoài mã chịu trách nhiệm xử lý các yêu cầu bài, trả về tất cả các tài liệu việc cần làm trong bộ sưu tập client = MongoClient('localhost', 27017, username='username', password='password') 5. Bạn lưu Todos bạn nhận được từ cơ sở dữ liệu trong một biến có tên là # ... @app.route('/', methods=('GET', 'POST')) def index(): return render_template('index.html') 3, và sau đó bạn chỉnh sửa lệnh gọi hàm
- show dbs
- show dbs
Nếu bạn làm mới trang chỉ mục, bạn có thể nhận được một thông báo từ trình duyệt yêu cầu bạn xác nhận việc gửi lại biểu mẫu. Nếu bạn chấp nhận, mục TODO bạn đã gửi trước đó trước khi xử lý các yêu cầu POST sau đó sẽ được thêm vào cơ sở dữ liệu, vì mã để xử lý các biểu mẫu hiện tồn tại trong tuyến đường.
Bởi vì trang chỉ mục chưa có mã để hiển thị các mục TODO, mục bạn đã thêm sẽ không hiển thị. Nếu bạn cho phép trình duyệt gửi lại biểu mẫu của bạn, bạn có thể xem dữ liệu mới được thêm vào bằng cách mở vỏ Mongo của bạn và kết nối với cơ sở dữ liệu client = MongoClient('localhost', 27017, username='username', password='password') 3 bằng cách sử dụng lệnh sau:
Output
Successfully installed Flask-2.0.2 Jinja2-3.0.3 MarkupSafe-2.0.1 Werkzeug-2.0.2 click-8.0.3 itsdangerous-2.0.1 pymongo-4.0.1 7Sau đó, sử dụng chức năng # ... @app.route('/', methods=('GET', 'POST')) def index(): return render_template('index.html') 1 để có tất cả các mục TODO trong cơ sở dữ liệu:
Output
Successfully installed Flask-2.0.2 Jinja2-3.0.3 MarkupSafe-2.0.1 Werkzeug-2.0.2 click-8.0.3 itsdangerous-2.0.1 pymongo-4.0.1 8Nếu bất kỳ dữ liệu nào được gửi lại, bạn sẽ thấy nó ở đây trong đầu ra của bạn.
Tiếp theo, hãy mở mẫu
- show dbs
Output
Successfully installed Flask-2.0.2 Jinja2-3.0.3 MarkupSafe-2.0.1 Werkzeug-2.0.2 click-8.0.3 itsdangerous-2.0.1 pymongo-4.0.1 9Chỉnh sửa tệp bằng cách thêm lỗi
Output
Successfully installed Flask-2.0.2 Jinja2-3.0.3 MarkupSafe-2.0.1 Werkzeug-2.0.2 click-8.0.3 itsdangerous-2.0.1 pymongo-4.0.1 01 và vòng lặp JinjaOutput
Successfully installed Flask-2.0.2 Jinja2-3.0.3 MarkupSafe-2.0.1 Werkzeug-2.0.2 click-8.0.3 itsdangerous-2.0.1 pymongo-4.0.1 02 sau biểu mẫu, để tệp trông như sau:flask_app/templates/index.html
- nano app.py
Lưu và đóng tập tin.
Trong những thay đổi này, bạn xử lý các yêu cầu POST bên trong điều kiện from flask import Flask, render_template, request, url_for, redirect from pymongo import MongoClient # ... 6. Bạn trích xuất Nội dung TODO và mức độ quan trọng mà người dùng gửi từ đối tượng from flask import Flask, render_template, request, url_for, redirect from pymongo import MongoClient # ... 7.
Bạn sử dụng phương thức from flask import Flask, render_template, request, url_for, redirect from pymongo import MongoClient # ... 8 trên bộ sưu tập Todos để thêm tài liệu việc cần làm vào đó. Bạn cung cấp dữ liệu việc làm trong từ điển Python, đặt from flask import Flask, render_template, request, url_for, redirect from pymongo import MongoClient # ... 9 thành giá trị mà người dùng đã gửi trong trường văn bản cho nội dung TODO và đặt khóa # ... @app.route('/', methods=('GET', 'POST')) def index(): return render_template('index.html') 0 thành giá trị của nút radio mà người dùng chọn. Sau đó, bạn chuyển hướng đến trang Index, sẽ làm mới trang và hiển thị mục TODO mới được thêm.
Để hiển thị tất cả các TODO đã lưu, bạn sử dụng phương thức # ... @app.route('/', methods=('GET', 'POST')) def index(): return render_template('index.html') 1 bên ngoài mã chịu trách nhiệm xử lý các yêu cầu bài, trả về tất cả các tài liệu việc cần làm trong bộ sưu tập client = MongoClient('localhost', 27017, username='username', password='password') 5. Bạn lưu Todos bạn nhận được từ cơ sở dữ liệu trong một biến có tên là # ... @app.route('/', methods=('GET', 'POST')) def index(): return render_template('index.html') 3, và sau đó bạn chỉnh sửa lệnh gọi hàm
- show dbs
- show dbs
Nếu bạn làm mới trang chỉ mục, bạn có thể nhận được một thông báo từ trình duyệt yêu cầu bạn xác nhận việc gửi lại biểu mẫu. Nếu bạn chấp nhận, mục TODO bạn đã gửi trước đó trước khi xử lý các yêu cầu POST sau đó sẽ được thêm vào cơ sở dữ liệu, vì mã để xử lý các biểu mẫu hiện tồn tại trong tuyến đường.
Bởi vì trang chỉ mục chưa có mã để hiển thị các mục TODO, mục bạn đã thêm sẽ không hiển thị. Nếu bạn cho phép trình duyệt gửi lại biểu mẫu của bạn, bạn có thể xem dữ liệu mới được thêm vào bằng cách mở vỏ Mongo của bạn và kết nối với cơ sở dữ liệu client = MongoClient('localhost', 27017, username='username', password='password') 3 bằng cách sử dụng lệnh sau:
Sau đó, sử dụng chức năng # ... @app.route('/', methods=('GET', 'POST')) def index(): return render_template('index.html') 1 để có tất cả các mục TODO trong cơ sở dữ liệu:
Nếu bất kỳ dữ liệu nào được gửi lại, bạn sẽ thấy nó ở đây trong đầu ra của bạn.
Tiếp theo, hãy mở mẫu
- show dbs
- nano app.py
Chỉnh sửa tệp bằng cách thêm lỗi
Output
Successfully installed Flask-2.0.2 Jinja2-3.0.3 MarkupSafe-2.0.1 Werkzeug-2.0.2 click-8.0.3 itsdangerous-2.0.1 pymongo-4.0.1 01 và vòng lặp JinjaOutput
Successfully installed Flask-2.0.2 Jinja2-3.0.3 MarkupSafe-2.0.1 Werkzeug-2.0.2 click-8.0.3 itsdangerous-2.0.1 pymongo-4.0.1 02 sau biểu mẫu, để tệp trông như sau:flask_app/app.py
- nano app.py
Trong tệp này, bạn thêm thẻ
Output
Successfully installed Flask-2.0.2 Jinja2-3.0.3 MarkupSafe-2.0.1 Werkzeug-2.0.2 click-8.0.3 itsdangerous-2.0.1 pymongo-4.0.1 01 để phân tách biểu mẫu web và danh sách TODO.Bạn sử dụng vòng lặp
Output
Successfully installed Flask-2.0.2 Jinja2-3.0.3 MarkupSafe-2.0.1 Werkzeug-2.0.2 click-8.0.3 itsdangerous-2.0.1 pymongo-4.0.1 02 trong dòngOutput
Successfully installed Flask-2.0.2 Jinja2-3.0.3 MarkupSafe-2.0.1 Werkzeug-2.0.2 click-8.0.3 itsdangerous-2.0.1 pymongo-4.0.1 05 để đi qua từng mục việc cần làm trong danh sách client = MongoClient('localhost', 27017, username='username', password='password') 5. Bạn hiển thị nội dung TODO và mức độ quan trọng bên trong thẻOutput
Successfully installed Flask-2.0.2 Jinja2-3.0.3 MarkupSafe-2.0.1 Werkzeug-2.0.2 click-8.0.3 itsdangerous-2.0.1 pymongo-4.0.1 07.flask_app/app.py
- nano app.py
Lưu và đóng tập tin.
Trong những thay đổi này, bạn xử lý các yêu cầu POST bên trong điều kiện from flask import Flask, render_template, request, url_for, redirect from pymongo import MongoClient # ... 6. Bạn trích xuất Nội dung TODO và mức độ quan trọng mà người dùng gửi từ đối tượng from flask import Flask, render_template, request, url_for, redirect from pymongo import MongoClient # ... 7.
Bạn sử dụng phương thức from flask import Flask, render_template, request, url_for, redirect from pymongo import MongoClient # ... 8 trên bộ sưu tập Todos để thêm tài liệu việc cần làm vào đó. Bạn cung cấp dữ liệu việc làm trong từ điển Python, đặt from flask import Flask, render_template, request, url_for, redirect from pymongo import MongoClient # ... 9 thành giá trị mà người dùng đã gửi trong trường văn bản cho nội dung TODO và đặt khóa # ... @app.route('/', methods=('GET', 'POST')) def index(): return render_template('index.html') 0 thành giá trị của nút radio mà người dùng chọn. Sau đó, bạn chuyển hướng đến trang Index, sẽ làm mới trang và hiển thị mục TODO mới được thêm.
Sau khi xóa tài liệu TODO, bạn chuyển hướng người dùng đến trang Index.
Tiếp theo, chỉnh sửa mẫu
- show dbs
Output
Successfully installed Flask-2.0.2 Jinja2-3.0.3 MarkupSafe-2.0.1 Werkzeug-2.0.2 click-8.0.3 itsdangerous-2.0.1 pymongo-4.0.1 9Chỉnh sửa vòng lặp
Output
Successfully installed Flask-2.0.2 Jinja2-3.0.3 MarkupSafe-2.0.1 Werkzeug-2.0.2 click-8.0.3 itsdangerous-2.0.1 pymongo-4.0.1 02 bằng cách thêm thẻOutput
Successfully installed Flask-2.0.2 Jinja2-3.0.3 MarkupSafe-2.0.1 Werkzeug-2.0.2 click-8.0.3 itsdangerous-2.0.1 pymongo-4.0.1 25 mới:flask_app/templates/index.html
- nano app.py
Lưu và đóng tập tin.
Ở đây, bạn có một biểu mẫu web gửi yêu cầu POST đến chức năng xem ____10109. Bạn vượt qua
Output
Successfully installed Flask-2.0.2 Jinja2-3.0.3 MarkupSafe-2.0.1 Werkzeug-2.0.2 click-8.0.3 itsdangerous-2.0.1 pymongo-4.0.1 27 để chỉ định việc cần làm sẽ bị xóa. Bạn sử dụng phương thứcOutput
Successfully installed Flask-2.0.2 Jinja2-3.0.3 MarkupSafe-2.0.1 Werkzeug-2.0.2 click-8.0.3 itsdangerous-2.0.1 pymongo-4.0.1 28 có sẵn trong các trình duyệt web để hiển thị thông báo xác nhận trước khi gửi yêu cầu.Bây giờ hãy làm mới trang chỉ mục của bạn và bạn sẽ thấy một nút TODO xóa bên dưới mỗi mục TODO. Nhấp vào nó, và xác nhận xóa. Bạn sẽ được chuyển hướng đến trang Index và việc TODO sẽ không còn ở đó nữa.Delete Todo button below each todo item. Click on it, and confirm the deletion. You’ll be redirected to the index page, and the todo will no longer be there.
Bây giờ bạn có một cách để xóa Todos không mong muốn khỏi cơ sở dữ liệu MongoDB của bạn trong ứng dụng bình của bạn.
Để xác nhận việc xóa, hãy mở vỏ Mongo của bạn và sử dụng hàm # ... @app.route('/', methods=('GET', 'POST')) def index(): return render_template('index.html') 1:
Output
Successfully installed Flask-2.0.2 Jinja2-3.0.3 MarkupSafe-2.0.1 Werkzeug-2.0.2 click-8.0.3 itsdangerous-2.0.1 pymongo-4.0.1 8Bạn sẽ thấy rằng các mục bạn đã xóa không còn trong bộ sưu tập client = MongoClient('localhost', 27017, username='username', password='password') 5 của bạn.
Sự kết luận
Bạn đã xây dựng một ứng dụng web nhỏ để quản lý TODO giao tiếp với cơ sở dữ liệu MongoDB. Bạn đã học cách kết nối với máy chủ cơ sở dữ liệu MongoDB, tạo các bộ sưu tập lưu trữ một nhóm tài liệu, chèn dữ liệu vào bộ sưu tập và truy xuất và xóa dữ liệu khỏi bộ sưu tập.
Nếu bạn muốn đọc thêm về Flask, hãy xem các hướng dẫn khác trong cách tạo các trang web với sê -ri Flask.
Để biết thêm về MongoDB, hãy xem Cách quản lý dữ liệu của chúng tôi với loạt Hướng dẫn MongoDB.