Đoạn mã dưới đây là một ví dụ để lưu trữ dữ liệu BLOB trong cơ sở dữ liệu PostgreSQL. Trường hợp tên bảng là blob_datastore
Python3
import
psycopg2
from
config
import
config
# This Function will open &
________số 8
# to binary data.
psycopg2
0 psycopg2
1
psycopg2
2______13psycopg2
4psycopg2
5psycopg2
6psycopg2
7psycopg2
8psycopg2
9
from
0from
1from
2 psycopg2
8from
4
psycopg2
2from
6 from
1
psycopg2
0 config
1
psycopg2
2config
3
psycopg2
2____35______22 config
7
psycopg2
2____39psycopg2
9
from
0import
3
from
0import
5
from
0______35from
2 import
9config
0config
0config
2
from
0config
5
from
0______37from
2 config
9
from
0
2
from
0_______64from
2
6
from
0
9
from
0# This Function will open &
1from
2 # This Function will open &
3
from
0# This Function will open &
6
from
0# This Function will open &
8
# This Function will open &
9# convert the image or file data
0
# This Function will open &
9# convert the image or file data
2# convert the image or file data
3# convert the image or file data
4# convert the image or file data
3# convert the image or file data
4# convert the image or file data
3# convert the image or file data
8
from
0# to binary data.
1
from
0# to binary data.
3
psycopg2
2____96____97
from
0____99____100
psycopg2
2____102psycopg2
9
from
0psycopg2
05 config
5psycopg2
07 psycopg2
08 config
7psycopg2
9
# This Function will open &
9psycopg2
12
# This Function will open &
9psycopg2
14
psycopg2
17
psycopg2
18
psycopg2
19psycopg2
20psycopg2
21psycopg2
22psycopg2
23
đầu ra
Lưu trữ BLOB trong Cơ sở dữ liệu PostgreSQL
Lưu trữ các loại tệp khác nhau [Kiểu dữ liệu BLOB]
Do đó, chúng tôi đã thiết lập kết nối với cơ sở dữ liệu PostgreSQL và lưu trữ các loại Tệp khác nhau trong cơ sở dữ liệu PostgreSQL. Trong ví dụ này, chúng tôi sẽ lưu trữ tệp video và pdf trong cơ sở dữ liệu
PostgreSQL, thường được viết là "Postgres" và phát âm là "Poss-gres", là một triển khai cơ sở dữ liệu quan hệ nguồn mở thường được các ứng dụng Python sử dụng làm phần phụ trợ để lưu trữ và truy xuất dữ liệu
Làm thế nào để PostgreSQL phù hợp với ngăn xếp Python?
PostgreSQL là lựa chọn cơ sở dữ liệu mặc định cho nhiều nhà phát triển Python, bao gồm cả nhóm Django khi thử nghiệm Django ORM. PostgreSQL thường được xem là có nhiều tính năng mạnh mẽ và ổn định hơn khi so sánh với MySQL, SQLServer và Oracle. Tất cả những cơ sở dữ liệu đó là sự lựa chọn hợp lý. Tuy nhiên, vì PostgreSQL có xu hướng được các nhà phát triển Python sử dụng nên trình điều khiển và mã ví dụ để sử dụng cơ sở dữ liệu có xu hướng được ghi lại tốt hơn và chứa ít lỗi hơn cho các tình huống sử dụng thông thường. Nếu bạn cố gắng sử dụng cơ sở dữ liệu Oracle với Django, bạn sẽ thấy có ít mã ví dụ hơn cho thiết lập đó so với thiết lập phụ trợ PostgreSQL
Tại sao PostgreSQL là một lựa chọn cơ sở dữ liệu tốt?
Giấy phép nguồn mở của PostgreSQL cho phép các nhà phát triển vận hành một hoặc nhiều cơ sở dữ liệu mà không phải trả chi phí cấp phép trong các ứng dụng của họ. Mô hình vận hành giấy phép nguồn mở ít tốn kém hơn nhiều so với Oracle hoặc các cơ sở dữ liệu độc quyền khác, đặc biệt khi việc sao chép và bảo vệ dữ liệu trở nên cần thiết ở quy mô lớn. Ngoài ra, do có rất nhiều người từ các nhà phát triển độc lập đến các tổ chức đa quốc gia sử dụng PostgreSQL nên việc tìm các nhà phát triển có kinh nghiệm về PostgreSQL thường dễ dàng hơn so với các cơ sở dữ liệu quan hệ khác. Cũng có bằng chứng cho thấy PostgreSQL sửa lỗi nhanh hơn MySQL, mặc dù công bằng mà nói, chưa có một nghiên cứu toàn diện nào so sánh cách hai dự án xử lý việc giải quyết lỗi.
Nhóm cốt lõi của PostgreSQL cũng phát hành các bản cập nhật thường xuyên giúp nâng cao đáng kể khả năng của cơ sở dữ liệu. Ví dụ, trong PostgreSQL 9. Trong bản phát hành 4, loại jsonb đã được thêm vào để nâng cao khả năng lưu trữ Ký hiệu đối tượng JavaScript [JSON] để trong nhiều trường hợp, không yêu cầu cơ sở dữ liệu NoSQL riêng biệt trong kiến trúc của ứng dụng
Kết nối với PostgreSQL bằng Python
Để làm việc với cơ sở dữ liệu quan hệ trong Python, bạn cần sử dụng trình điều khiển cơ sở dữ liệu, còn được gọi là trình kết nối cơ sở dữ liệu. Thư viện trình điều khiển phổ biến nhất để làm việc với PostgreSQL là psycopg. Có một danh sách tất cả các trình điều khiển trên wiki PostgreSQL, bao gồm một số thư viện không còn được duy trì. Nếu bạn đang làm việc với mô-đun stdlib asyncio Python, bạn cũng nên xem qua thư viện aiopg bao bọc các tính năng aychronouos của psycopg2 cùng nhau
Để trừu tượng hóa kết nối giữa các bảng và đối tượng, nhiều nhà phát triển Python sử dụng trình ánh xạ quan hệ đối tượng [ORM] để biến dữ liệu quan hệ từ PostgreSQL thành các đối tượng có thể được sử dụng trong ứng dụng Python của họ. Ví dụ: trong khi PostgreSQL cung cấp cơ sở dữ liệu quan hệ và psycopg là trình kết nối cơ sở dữ liệu chung, có nhiều ORM có thể được sử dụng với các khung web khác nhau, như trong bảng bên dưới
Tìm hiểu thêm về Python ORM trên trang chủ đề chuyên dụng đó
An toàn dữ liệu PostgreSQL
Nếu bạn đang dùng Linux, thật dễ dàng để cài đặt PostgreSQL bằng trình quản lý gói. Tuy nhiên, khi cơ sở dữ liệu được cài đặt và chạy, trách nhiệm của bạn chỉ mới bắt đầu. Trước khi bạn bắt đầu triển khai ứng dụng sản xuất, hãy đảm bảo
Khi có thể, hãy nhờ người đủ tiêu chuẩn thực hiện kiểm tra bảo mật PostgreSQL để xác định những rủi ro lớn nhất đối với cơ sở dữ liệu của bạn. Các ứng dụng nhỏ và các công ty khởi nghiệp thường không đủ khả năng kiểm toán đầy đủ ngay từ đầu nhưng khi một ứng dụng phát triển theo thời gian, nó sẽ trở thành mục tiêu lớn hơn
Dữ liệu được lưu trữ trong cơ sở dữ liệu của bạn là huyết mạch của ứng dụng của bạn. Nếu bạn đã từng vô tình đánh rơi cơ sở dữ liệu sản xuất hoặc là nạn nhân của hoạt động nguy hiểm chẳng hạn như tấn công SQL injection, bạn sẽ biết rằng việc khôi phục sẽ dễ dàng hơn rất nhiều khi một chút công việc đã được thực hiện trước đó đối với các biện pháp sao lưu, sao chép và bảo mật
Tài nguyên PostgreSQL dành riêng cho Python
Nhiều phần khởi động nhanh và hướng dẫn dành riêng cho Django, Flask và các khung ứng dụng web khác. Những cái dưới đây là một số hướng dẫn tốt nhất mà tôi đã đọc
o Postgres Joins và Django Querysets là một bài đăng được thực hiện tốt với một ví dụ cụ thể về cách truy vấn Django ORM tiêu chuẩn có thể dẫn đến hiệu suất bị suy giảm do khi lấy dữ liệu từ nhiều bảng liên quan. Các công cụ giám sát hiệu suất cơ sở dữ liệu và lệnh psycopg2
24 có thể giúp phân tích và giảm bớt một số vấn đề trong các truy vấn không được tối ưu hóa này
Tài nguyên PostgreSQL chung
Các hướng dẫn PostgreSQL không dành riêng cho Python cũng thực sự hữu ích để xử lý dữ liệu của bạn đúng cách
Giám sát và hiệu suất PostgreSQL
Giám sát một hoặc nhiều phiên bản PostgreSQL và cố gắng điều chỉnh hiệu suất của chúng là một bộ kỹ năng hiếm có. Dưới đây là một số tài nguyên để giúp bạn bắt đầu nếu bạn phải xử lý những sự cố này trong ứng dụng của mình