Tiếp tục series lập trình Python 3, hôm nay vinasupport sẽ hướng dẫn các bận cách kết nối tới CSDL MongoDB bằng Python 3. Show
Các bài viết nên tham khảo trước:
Cài đặt thư viện MongoDB DriverĐầu tiên để kết nối tới cơ sở dữ liệu MongoDB chúng ta cần cài đặt thư viện MongoDB Driver có tên là pymongo, để cài đặt pymongo chúng ta sử dụng lệnh pip3 đối với Python 3 và pip nếu sử dụng Python 2. pip3 install pymongoKết nối đến MongoDB bằng Python 3Trên MongoDB, mình đã tạo sẵn 1 database là vinasupport Đoạn code Python 3 thực hiện kết nối và hiển thị danh sách database trên MongoDB #!/usr/bin/env python3 from pymongo import MongoClient import pprint # Connect to mongodb client = MongoClient('192.168.2.10', 27017) # get database db = client.vinasupport # Show database stats pprint.pprint(db.command('dbstats'))Đoạn code trên sử dụng class MongoClient được import từ thư viện pymongo, kết nối tới CSDL MongoDB ở địa chỉ 192.168.2.10 trên công 27017 (Cổng mặc định) Kết quả: Nguồn: vinasupport.com Trong hướng dẫn Python của chúng tôi , chúng tôi đã nghiên cứu Quyền truy cập cơ sở dữ liệu Python. Ở đây, trong hướng dẫn NoSQL DB Python này, chúng ta sẽ nghiên cứu hoạt động của NoSQL DB trong Ngôn ngữ lập trình Python. Ngoài ra, chúng ta sẽ thảo luận về nhu cầu và lợi ích của Cơ sở dữ liệu Python NoSQL. Cùng với phần
này sẽ nghiên cứu các loại NoSQL khác nhau và các chức năng khác nhau như cách chèn vào, cập nhật và xóa dữ liệu từ NoSQL DB. Chúng tôi sẽ sử dụng MongoDB cho việc này. Cuối cùng, chúng tôi sẽ đề cập đến NoSQL và SQL. Các bài viết liên quan: Vì vậy, hãy bắt đầu NoSQL DB bằng Python. NoSQL DB là gì?Trước khi bắt đầu NoSQL DB bằng Python, chúng ta hãy tìm hiểu về NoSQL. NoSQL mở rộng thành “ Không là SQL ”. Nó cho chúng ta một cách để lưu trữ và truy xuất dữ liệu mà chúng ta có thể lập mô hình ở các dạng khác với dạng quan hệ (bảng). NoSQL DB phần lớn được sử dụng trong các ứng dụng liên quan đến dữ liệu lớn và sử dụng thời gian thực. Lý do chúng tôi gọi chúng là “Không là SQL” là vì chúng có thể hỗ trợ các ngôn ngữ truy vấn giống SQL. Chúng ta có thể sử dụng NoSQL để lưu trữ dữ liệu ở các dạng như khóa-giá trị, tài liệu, cột và đồ thị. Khi làm việc với các bộ dữ liệu phân tán lớn, chúng tôi sử dụng NoSQL. Xem thêm Kiểm tra lỗ hổng bảo mật SQL injection trong NoSql Cần cho NoSQL DB bằng PythonVì vậy, tại sao chúng ta cần NoSQL?
Các loại cơ sở dữ liệu với NoSQLNhư chúng ta đã thảo luận trước đây, chúng ta có bốn loại dữ liệu khác nhau mà chúng ta có thể lập mô hình với NoSQL DB bằng Python- Cơ sở dữ liệu documentTrong cơ sở dữ liệu tài liệu, mỗi khóa ghép nối với một tài liệu. Tài liệu là một cấu trúc dữ liệu phức tạp và có thể chứa bất kỳ cặp khóa-giá trị, cặp khóa-mảng, tài liệu lồng nhau nào sau đây. Những dữ liệu này lưu trữ dữ liệu bán cấu trúc. Chúng tôi sử dụng chúng cho các ứng dụng như quản lý nội dung và xử lý dữ liệu ứng dụng di động. Cơ sở dữ liệu GraphKho lưu trữ đồ thị chứa kiến thức về mạng dữ liệu. Một trong những mạng như vậy là kết nối xã hội. Trong một cửa hàng đồ thị, một nút giống như một bản ghi trong cơ sở dữ liệu quan hệ và một cạnh giống như một kết nối giữa các nút. Điều này cho phép nó thể hiện các mối quan hệ dữ liệu tốt hơn. Chúng tôi sử dụng chúng cho các ứng dụng như CRM và hệ thống đặt chỗ. Một số ví dụ là Neo4J và Giraph. Cơ sở dữ liệu key-valueKho khóa-giá trị giữ các cặp khóa-giá trị trong cấu trúc của nó. Đây là NoSQL DB đơn giản nhất. Chúng tôi sử dụng chúng trong các ứng dụng như quản lý phiên và bộ nhớ đệm trong các ứng dụng web. Một số ví dụ bao gồm Riak, Redis và Berkeley DB. Cơ sở dữ liệu wide-columnKhi chúng ta muốn lưu trữ các cột cùng hoạt động với các truy vấn trên tập dữ liệu lớn, chúng ta có thể sử dụng các wide-column. Chúng tôi cũng tìm thấy chúng trong cơ sở dữ liệu SQL và chúng truy vấn khối lượng lớn nhanh hơn. Một số ví dụ là Cassandra , HBase và Google BigTable. Đọc về pháp y Python – Hàm băm, ảo hóa Xem thêm SQL injection attack là gì? Lợi ích của việc sử dụng NoSQL DBĐây là những ưu điểm sau của NoSQL DB bằng Python, hãy thảo luận từng cái một:
NoSQL và SQLVậy, hai cái này khác nhau như thế nào? Hãy xem nào.
Xem thêm Kiểm tra lỗ hổng bảo mật SQL Injection Cài đặt Điều kiện tiên quyết của NoSQL DB bằng PythonTrong hướng dẫn Cơ sở dữ liệu Python NoSQL này, chúng tôi sử dụng thư viện pymongo. Đây là trình điều khiển chính thức được xuất bản bởi các nhà phát triển Mongo. Bạn có thể cài đặt nó theo cách này: Phần này cài đặt phiên bản 3.7.0, là phiên bản mới nhất của pymongo tại thời điểm viết bài viết này. Bạn cũng sẽ cần cài đặt cơ sở dữ liệu MongoDB . Các hoạt động được thực hiện trong NoSQL DB bằng PythonXem thêm Kiểm tra lỗ hổng bảo mật SQL injection Client-side Insert recordĐể chèn dữ liệu vào NoSQL DB trong Python 3, chúng tôi sử dụng phương thức insert (). Đây là mã chúng tôi sử dụng trong dấu nhắc lệnh (Bạn cũng có thể chạy một tập lệnh hoặc chỉ cần sử dụng trình thông dịch): from pymongo import MongoClient # khai báo thư viện pymongo from pprint import pprint # sử dụng thư viện pprint client=MongoClient() #tạo đối tượng client db=client.test #kết nối đến database student=db.student student_record={ # tạo record sinh viên 'Name':'Ayushi Sharma', 'Enrolment':'0875CS191003', 'Age':'22'} result=student.insert_one(student_record) # insert record vào database pprint(student.find_one({'Age':'22'})) # show ra một sinh viên có tuổi 22 Update recordBây giờ để cập nhật dữ liệu này, chúng tôi sử dụng phương thức update (). from pymongo import MongoClient# khai báo thư viện pymongo from pprint import pprint # sử dụng thư viện pprint client=MongoClient() #Choose client db=client.test #kết nối đến database student=db.student db.student.update_one({'Age':'22'}, {'$set': {'Name':'Name update', # cập nhật name =Name update 'Enrolment':'0875CS191003', 'Age':'23'}}) #Choosing the record to update pprint(student.find_one({'Age':'23'}) Delete recordBây giờ để xóa bản ghi này, chúng ta có thể sử dụng phương thức delete (). from pymongo import MongoClient# khai báo thư viện pymongo from pprint import pprint# sử dụng thư viện pprint client=MongoClient() #Choose client db=client.test #kết nối đến DB student=db.student db.student.delete_one({'Age':'23'})# xóa một object có age = 23 pprint(student.find_one({'Age':'23'}) Ở đây, Python in Không có vì nó không thể tìm thấy bản ghi đó trong cơ sở dữ liệu. Vì vậy, đây là tất cả về NoSQL DB bằng Python. Hy vọng bạn thích giải thích của chúng tôi. Kết luậnDo đó, điều này giúp bạn bắt đầu với những điều cơ bản của việc sử dụng NoSQL DB bằng Python bằng PyMongo. Để lại thắc mắc của bạn trong phần bình luận bên dưới. Xem thêm Phương pháp tấn công Blind SQL Injection |