Làm cách nào để kết nối PostgreSQL với Python?

Trình kết nối "PostgreSQL Python" cho phép các chương trình Python truy cập cơ sở dữ liệu PostgreSQL, trình kết nối sử dụng API tuân thủ Đặc tả API cơ sở dữ liệu Python

Có một số trình điều khiển Python cho PostgreSQL. Dưới đây là danh sách các trình điều khiển

ConnectorLicensePlatformsPhiên bản PythonPsycopgLGPLUnix, Win322. 4-3. 2PyGreSQLBSDUnix, Win322. 3-2. 6ocpgdbBSDUnix2. 3-2. 6py-postgresqlBSDany (Python thuần túy)3. 0+bpgsqlLGPLany (Python thuần túy)2. 3-2. 6pg8000BSDany (Trăn thuần)2. 5+ / 3. 0+

Psycopg là bộ điều hợp PostgreSQL phổ biến nhất cho ngôn ngữ lập trình Python. Về cốt lõi, nó triển khai đầy đủ Python DB API 2. 0 thông số kỹ thuật. Một số tiện ích mở rộng cho phép truy cập vào nhiều tính năng do PostgreSQL cung cấp

Psycopg được phát hành theo các điều khoản của GNU Lesser General Public License, cho phép sử dụng cả phần mềm miễn phí và phần mềm độc quyền

Các tính năng của Psycopg.
Psycopg chủ yếu được viết bằng C và bao bọc thư viện libpq với kết quả vừa nhanh vừa an toàn.

  • Hỗ trợ các phiên bản Python từ 2. 5 đến 3. 4
  • Hỗ trợ các phiên bản PostgreSQL từ 7. 4 đến 9. 4
  • Việc triển khai tuân thủ đầy đủ đặc tả API Python DB cho bộ điều hợp cơ sở dữ liệu
  • chủ đề an toàn. các luồng có thể sử dụng các kết nối khác nhau hoặc chia sẻ cùng một kết nối
  • I/O không chặn không đồng bộ cũng được tích hợp với các thư viện dựa trên quy trình
  • Thích ứng nhiều đối tượng Python với loại cơ sở dữ liệu. bộ dữ liệu thành bản ghi, danh sách thành mảng, từ điển thành hstore, hỗ trợ JSON linh hoạt
  • Có thể mở rộng với các bộ điều hợp mới để chuyển đổi các đối tượng Python thành cú pháp SQL và nhập casters để chuyển đổi các loại PostgreSQL trở lại thành các đối tượng Python
  • Con trỏ phía máy chủ
  • hỗ trợ SAO CHÉP
  • Hỗ trợ đối tượng lớn
  • Có thể gửi và nhận thông báo không đồng bộ
  • Hỗ trợ cho cam kết hai giai đoạn

Tải xuống và cài đặt

Trình kết nối python chạy trên mọi nền tảng đã cài đặt Python. Python được cài đặt sẵn trên nhiều hệ thống phân phối Linux hoặc giống Unix, chẳng hạn như Mac OS X và FreeBSD

API PostgreSQL cho Python cho phép người dùng tương tác với cơ sở dữ liệu PostgreSQL bằng mô-đun psycopg2. Trong bài viết này, chúng ta sẽ xem xét quá trình kết nối với cơ sở dữ liệu PostgreSQL bằng Python

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

Trước tiên, chúng ta sẽ cần cài đặt mô-đun psycopg2 bằng lệnh bên dưới trong dấu nhắc lệnh

pip install psycopg2

 

Tạo cơ sở dữ liệu

Với mục đích ví dụ, chúng tôi sẽ cần một cơ sở dữ liệu mẫu. Để tạo như vậy, hãy làm theo các bước dưới đây

  • Trước tiên hãy mở một công cụ máy khách PostgreSQL như pgadmin4 hoặc psql
  • Đăng nhập lần thứ hai vào cơ sở dữ liệu bằng thông tin đăng nhập của bạn
  • Cuối cùng, sử dụng lệnh dưới đây để tạo cơ sở dữ liệu (giả sử, Trường học)
CREATE DATABASE school;

Kết nối với cơ sở dữ liệu

Để kết nối với cơ sở dữ liệu đã tạo ở trên (tức là trường học), chúng ta sử dụng hàm connect(). Hàm connect() được sử dụng để tạo một phiên cơ sở dữ liệu mới và nó trả về một thể hiện của lớp kết nối mới

Để làm như vậy, sử dụng cú pháp dưới đây

Syntax: conn = psycopg2.connect("dbname=suppliers user=postgres password=postgres")

Để thuận tiện khi sử dụng, bạn có thể sử dụng phương pháp dưới đây

1. Đầu tiên tạo cơ sở dữ liệu. ini với thông tin đăng nhập như hình bên dưới

[postgresql]
host=localhost
database=school
user=postgres
password=5555

Bây giờ, hàm config() sau đọc cơ sở dữ liệu. ini và trả về các tham số kết nối. Chức năng config() tương tự được thêm vào trong cấu hình. tập tin py

Python3




[postgresql]
host=localhost
database=school
user=postgres
password=5555
9

CREATE DATABASE school;
0
CREATE DATABASE school;
1
CREATE DATABASE school;
2
CREATE DATABASE school;
3

CREATE DATABASE school;
4

CREATE DATABASE school;
4

CREATE DATABASE school;
1
CREATE DATABASE school;
2
CREATE DATABASE school;
3_______14
CREATE DATABASE school;
5
CREATE DATABASE school;
3
CREATE DATABASE school;
7
CREATE DATABASE school;
8

CREATE DATABASE school;
9
Syntax: conn = psycopg2.connect("dbname=suppliers user=postgres password=postgres")
0

CREATE DATABASE school;
9
Syntax: conn = psycopg2.connect("dbname=suppliers user=postgres password=postgres")
2____13
Syntax: conn = psycopg2.connect("dbname=suppliers user=postgres password=postgres")
4

CREATE DATABASE school;
9
Syntax: conn = psycopg2.connect("dbname=suppliers user=postgres password=postgres")
6

CREATE DATABASE school;
9
Syntax: conn = psycopg2.connect("dbname=suppliers user=postgres password=postgres")
8

CREATE DATABASE school;
4

CREATE DATABASE school;
9
[postgresql]
host=localhost
database=school
user=postgres
password=5555
1

CREATE DATABASE school;
9
[postgresql]
host=localhost
database=school
user=postgres
password=5555
3
CREATE DATABASE school;
3
[postgresql]
host=localhost
database=school
user=postgres
password=5555
5

CREATE DATABASE school;
9
[postgresql]
host=localhost
database=school
user=postgres
password=5555
7
[postgresql]
host=localhost
database=school
user=postgres
password=5555
8

[postgresql]
host=localhost
database=school
user=postgres
password=5555
9
[postgresql]
host=localhost
database=school
user=postgres
password=5555
90
CREATE DATABASE school;
3
[postgresql]
host=localhost
database=school
user=postgres
password=5555
92

[postgresql]
host=localhost
database=school
user=postgres
password=5555
9
[postgresql]
host=localhost
database=school
user=postgres
password=5555
94
[postgresql]
host=localhost
database=school
user=postgres
password=5555
95
[postgresql]
host=localhost
database=school
user=postgres
password=5555
96
[postgresql]
host=localhost
database=school
user=postgres
password=5555
97

[postgresql]
host=localhost
database=school
user=postgres
password=5555
98
[postgresql]
host=localhost
database=school
user=postgres
password=5555
99
CREATE DATABASE school;
00
CREATE DATABASE school;
01
CREATE DATABASE school;
3
CREATE DATABASE school;
03____404
CREATE DATABASE school;
05

_______19____407____408

[postgresql]
host=localhost
database=school
user=postgres
password=5555
9
CREATE DATABASE school;
10
CREATE DATABASE school;
11
CREATE DATABASE school;
12
CREATE DATABASE school;
13
CREATE DATABASE school;
14
CREATE DATABASE school;
15

CREATE DATABASE school;
4

CREATE DATABASE school;
9
CREATE DATABASE school;
18
[postgresql]
host=localhost
database=school
user=postgres
password=5555
3

Ví dụ

Hàm connect() sau kết nối với cơ sở dữ liệu trường học mà chúng ta đã tạo trước đó và trả về phiên bản cơ sở dữ liệu PostgreSQL

Làm cách nào để chạy psql bằng Python?

Các bước để thực thi truy vấn PostgreSQL SELECT từ Python .
Kết nối với PostgreSQL từ Python. .
Xác định Truy vấn CHỌN PostgreSQL. .
Nhận đối tượng con trỏ từ kết nối. .
Thực thi truy vấn SELECT bằng phương thức exec(). .
Trích xuất tất cả các hàng từ một kết quả. .
Lặp lại từng hàng. .
Đóng đối tượng con trỏ và đối tượng kết nối cơ sở dữ liệu

Làm cách nào để cài đặt PostgreSQL trong Python?

Nhập lệnh cho gói bạn muốn cài đặt. .
Để cài đặt gói psycopg2, gõ lệnh sau. Sao chép pip cài đặt psycopg2
Để cài đặt gói PyGreSQL, hãy nhập lệnh sau. Sao chép pip cài đặt pygresql

Làm cách nào để truy xuất dữ liệu từ PostgreSQL bằng Python?

Truy xuất dữ liệu bằng python . Lớp Cursor cung cấp ba phương thức là fetchall(), fetchmany() và, fetchone() Trong đó, Phương thức fetchall() truy xuất tất cả các hàng trong tập kết quả của một truy vấn và trả về chúng dưới dạng danh sách các bộ dữ liệu. using the fetch() method provided by the psycopg2. The Cursor class provides three methods namely fetchall(), fetchmany() and, fetchone() where, The fetchall() method retrieves all the rows in the result set of a query and returns them as list of tuples.

PostgreSQL có tương thích với Python không?

Ngôn ngữ thủ tục PL/Python cho phép các hàm và thủ tục PostgreSQL được viết bằng ngôn ngữ Python .