Cách kết nối và sử dụng PostgreSQL trong Python

Nếu bạn đang viết chương trình Python cần truy cập dữ liệu từ cơ sở dữ liệu Postgres, bạn sẽ cần biết cách kết nối cả hai. Sau khi thiết lập kết nối, bạn có thể sử dụng kết nối đó để chạy truy vấn và tìm nạp hoặc lưu dữ liệu.

Tải và cài đặt PostgreSQL

PostgreSQL là sự lựa chọn tuyệt vời cho các dự án lập trình của bạn. Bạn có thể tải xuống và cài đặt phiên bản PostgreSQL cần thiết tùy theo hệ điều hành của bạn. Postgres có sẵn để tải xuống trên các hệ điều hành tiêu chuẩn như Windows, macOS và Linux Ubuntu.

Quá trình cài đặt sẽ khác nhau giữa các hệ điều hành, vì vậy bạn nên làm theo các bước cài đặt để đảm bảo trải nghiệm thiết lập suôn sẻ.

Cài đặt thư viện cần thiết

Bạn có thể sử dụng thư viện psycopg2 để kết nối với cơ sở dữ liệu PostgreSQL từ Python. Chạy lệnh này trong trình thông dịch Python để kiểm tra xem thư viện đã được cài đặt chưa:

import psycopg2

Nếu bạn nhận được thông báo lỗi (ví dụ: "No module named 'psycopg2'"), hãy cài đặt thư viện bằng lệnh này:

pip install psycopg2

PIP là trình quản lý gói Python mà bạn có thể cài đặt trên Windows, Mac hoặc Linux. Nó giúp giảm bớt sự phức tạp của việc cài đặt các gói Python.

Tìm nạp thông tin xác thực bằng pgAdmin4

Bạn có thể sử dụng ứng dụng pgAdmin4 để quản lý cơ sở dữ liệu Postgres của mình trong môi trường GUI. Bạn có thể đã cài đặt nó cùng lúc với cài đặt Postgres, nhưng bạn có thể tải xuống pgAdmin4 và cài đặt riêng nếu cần.

Đây là cách bạn có thể sử dụng pgAdmin4 để lấy thông tin xác thực máy chủ của mình:

1. Từ menu ứng dụng, mở pgAdmin4.

2. Nhấp vào menu Servers ở bên trái màn hình ứng dụng.

3. Nhập mật khẩu Postgres bạn đã nhập trong quá trình thiết lập.

Nhập mật khẩu để kết nối với máy chủ Postgres
Nhập mật khẩu để kết nối với máy chủ Postgres

4. Sau khi bạn kết nối với máy chủ, hãy nhấp chuột phải vào mục PostgreSQL 16, sau đó chọn Properties.

Menu drop-down máy chủ Postgres hiển thị tùy chọn thuộc tính
Menu drop-down máy chủ Postgres hiển thị tùy chọn thuộc tính

5. Trong hộp thoại Properties, nhấp vào Connection.

6. Ghi lại Host name, số PortUsername.

Cửa sổ chi tiết kết nối trong máy chủ Postgres
Cửa sổ chi tiết kết nối trong máy chủ Postgres

Kết nối với máy chủ Postgres

Với thông tin xác thực trong tay, bạn có thể sử dụng thư viện psycopg2 để thiết lập kết nối với máy chủ Postgres của mình. Để làm như vậy, bạn cần sử dụng chức năng kết nối như sau:

conn = psycopg2.connect(host='localhost', port= '5432', user='postgres', password='your password here')

Tiếp theo, bạn phải sử dụng hàm con trỏ để thực thi các lệnh Postgres trong môi trường Python:

cur = conn.cursor()

Cuối cùng, bạn có thể thiết lập flag auto-commit để đảm bảo Python thực thi và xác nhận từng câu lệnh code. Bằng cách này, bạn không cần phải chuyển các câu lệnh cam kết riêng biệt sau mỗi dòng code.

conn.set_session(autocommit = True)

Bạn có thể chạy các câu lệnh này cùng một lúc để kết nối với phiên bản cục bộ của máy chủ Postgres.

Cách tạo cơ sở dữ liệu Postgres

Cơ sở dữ liệu Postgres đóng vai trò then chốt trong việc lưu trữ tập hợp các bảng có liên quan. Tạo một lệnh mới bằng lệnh SQL CREATE DATABASE mà bạn có thể chuyển sang phương thức execute của đối tượng con trỏ:

try:
    cur.execute('''CREATE DATABASE DB_NAME''')
except psycopg2.Error as e:
    print(e)

Bạn phải luôn cẩn thận để xử lý mọi trường hợp ngoại lệ có thể phát sinh. Ví dụ này chỉ in ra bất kỳ lỗi nào xảy ra nhưng trong code sản xuất, bạn sẽ muốn thực hiện hành động thích hợp.

Code Python trong Notebook Jupyter
Code Python trong Notebook Jupyter

Kiểm tra cơ sở dữ liệu trong pgAdmin4

Khi chạy truy vấn trên, bạn có thể kiểm tra xem cơ sở dữ liệu bằng pgAdmin4 đã được tạo thành công chưa. Đi tới giao diện ứng dụng, refresh danh sách cơ sở dữ liệu hiện có và tìm cơ sở dữ liệu mới.

Ví dụ, nếu bạn tạo một cơ sở dữ liệu mẫu có tên music bằng truy vấn trên, nó sẽ hiển thị trong danh sách cơ sở dữ liệu bên dưới danh mục Postgres16 > Databases.

Danh sách cơ sở dữ liệu pgAdmin4 trong giao diện ứng dụng
Danh sách cơ sở dữ liệu pgAdmin4 trong giao diện ứng dụng

Cách xóa cơ sở dữ liệu Postgres

Nếu không muốn giữ lại một cơ sở dữ liệu cụ thể, bạn có thể sử dụng lệnh sau để xóa nó:

try:
    cur.execute('''DROP DATABASE MUSIC''')
except psycopg2.Error as e:
    print(e)
Code Python để loại bỏ cơ sở dữ liệu trong Postgres
Code Python để loại bỏ cơ sở dữ liệu trong Postgres

Thay vì lệnh tạo, bạn cần sử dụng lệnh drop. Sau khi thực thi, bạn sẽ không thấy cơ sở dữ liệu được đề cập.

Thứ Năm, 04/01/2024 08:06
52 👨 301
0 Bình luận
Sắp xếp theo
    ❖ Python