Postgresql có thể chạy tập lệnh python không?

Có một số gói Python có giao diện với cơ sở dữ liệu SQL. Trong vài tuần qua, tôi đã sử dụng mô-đun psycopg2 để tương tác với các hệ thống quản lý cơ sở dữ liệu PostgreSQL. Bạn có thể sử dụng các thư viện Python trên dữ liệu thu được từ các truy vấn SQL. Chẳng hạn, thư viện Pandas có các phương thức riêng cho phép chúng tôi hiển thị và thao tác kết quả của truy vấn trực tiếp từ cơ sở dữ liệu SQL. Trong bài viết này tôi sẽ trình bày chi tiết quá trình thiết lập psycopg2 và xây dựng chức năng truy vấn bằng các công cụ này

Phần 1. Cách thiết lập Psycopg2

Điều kiện tiên quyết. Trước khi cố gắng cài đặt bộ điều hợp Python, bạn phải cài đặt Postgres mà tôi đã trình bày chi tiết trong bài viết trước

Psycopg là bộ điều hợp PostgreSQL cho ngôn ngữ lập trình Python. Công cụ này cho phép chúng tôi kết nối các khả năng của ngôn ngữ Python và thư viện để lấy, thao tác, nhập và cập nhật dữ liệu được lưu trữ trong cơ sở dữ liệu PostgreSQL. Tại thời điểm viết bài này, phiên bản hiện tại là psycopg2. Khi lần đầu tiên tìm kiếm gói này, tôi đã được chuyển đến trang web PyPI của dự án. Tôi tự nhiên quyết định sử dụng hệ thống quản lý gói pip mặc định để cài đặt, tuy nhiên, nhiều phụ thuộc của Psycopg không được bao gồm. Theo tài liệu, “Psycopg là một trình bao bọc C xung quanh thư viện máy khách libpq PostgreSQL. ” Bên dưới tiêu đề này, các phụ thuộc được bao gồm. Ban đầu, tôi đã thử cài đặt các phần phụ thuộc này và gặp phải những khó khăn giống như người dùng trên StackOverflow và GitHub của dự án đã phàn nàn về

Rất may, tôi tình cờ thấy một câu trả lời đề xuất quy trình cài đặt Homebrew. Mặc dù tôi đã cài đặt Ứng dụng Postgres, một thư mục chứa một hoặc nhiều phần phụ thuộc của psycopg2 đã bị thiếu. Trong thiết bị đầu cuối, tôi đã chạy lệnh brew install postgresql để cài đặt triển khai Homebrew của PostgreSQL và sau đó chạy lệnh pip install psycopg2 để cài đặt lại bộ điều hợp Python. Sau khi hoàn thành hai bước này, tôi đã có thể sử dụng thành công Psycopg

Phần 2. Kết nối với cơ sở dữ liệu PostgreSQL

Có một số cách để kết nối với cơ sở dữ liệu PostgreSQL, ba phương pháp là kết nối trực tiếp thông qua PostgresApp/terminal/dòng lệnh, kết nối trong một tập lệnh hoặc tệp Python [i. e. Jupyter Notebook] và kết nối bằng cách nhập các tham số cần thiết từ tệp khởi tạo hoặc tệp cấu hình. Tùy chọn thứ ba phù hợp nhất khi bạn muốn ẩn thông tin đăng nhập của mình bằng tệp .gitignore

Bạn cần một vài tham số để kết nối với bất kỳ cơ sở dữ liệu nào. Một số tham số phổ biến là máy chủ, cổng, tên người dùng và mật khẩu. Cơ sở dữ liệu PostgreSQL có thể được lưu trữ trên máy tính của bạn [được truy cập bằng localhost làm giá trị của tham số máy chủ] hoặc từ xa [được truy cập bằng I của máy chủ. P. address làm giá trị của tham số máy chủ]. Bạn cũng sẽ cần một số cổng, xác định quy trình đang chạy trên máy chủ mà yêu cầu của máy khách sẽ được gửi tới. Cổng mặc định của PostgreSQL là 5432, mặc dù cổng này có thể thay đổi. Bạn cũng có thể cần tên người dùng và mật khẩu nếu có quyền bảo mật;

Cảnh tham dự trong “Ngày nghỉ của Ferris Bueller” [1986]. Ferris Bueller cập nhật từ xa hồ sơ điểm danh của anh ấy được lưu trữ trong cơ sở dữ liệu trên máy chủ của trường anh ấy. Bueller đã đánh cắp thông tin đăng nhập của người dùng có quyền cần thiết để cập nhật hồ sơ của anh ta hoặc máy chủ đã cho phép truy cập vào bất kỳ máy khách nào

[1] Kết nối trực tiếp với PostgresApp/Terminal/Command Line

PostgreSQL khi mở lần đầu tiên. Lưu ý dấu cộng [+] ở góc dưới bên trái của hình ảnh

PostgresApp cho phép bạn kết nối trực tiếp với cơ sở dữ liệu được lưu trữ cục bộ hoặc từ xa bằng cách sử dụng menu Tạo máy chủ mới có thể được truy cập bằng biểu tượng dấu cộng [+] nằm ở góc dưới cùng bên trái của cửa sổ. Bạn cũng có thể nhấp vào cơ sở dữ liệu có sẵn để khởi tạo trình bao PostgreSQL trong cửa sổ đầu cuối mới, nút khởi tạo hoặc bắt đầu phải được kích hoạt

Bạn cũng có thể truy cập máy chủ thông qua dòng lệnh hoặc thiết bị đầu cuối. Nếu bạn mở một cửa sổ đầu cuối mới [bên ngoài trình bao PostgreSQL nếu Ứng dụng đang chạy], bạn có thể nhập lệnh để khởi tạo PostgreSQL, sau đó là các tham số cho cơ sở dữ liệu. Để bắt đầu PostgreSQL, bạn gõ /Applications/Postgres.app/Contents/Versions/12/bin/psql hoặc psql nếu bạn đã thiết lập phím tắt. Trong cùng một dòng, bạn có thể nhập các tham số bổ sung như máy chủ -h localhost [trong đó localhost có thể được thay thế bằng máy chủ I. P. địa chỉ], cổng -p 5432, tên người dùng -U username, tên cơ sở dữ liệu -d database_name và mật khẩu nếu cần thiết -W password [bạn có thể bỏ phần này đi hoặc nhập phiên bản chữ thường pip install psycopg20 để cho biết rằng không có mật khẩu]. Một yêu cầu kết nối hoàn chỉnh trong thiết bị đầu cuối sẽ giống như

pip install psycopg21

Lệnh kết nối thành công sẽ mở trình bao PostgreSQL và cho biết cơ sở dữ liệu đã được truy cập

[2] Kết nối trực tiếp trong một tệp

Khi bảo mật không phải là vấn đề, bạn có thể thực hành kết nối với cơ sở dữ liệu cục bộ trong một tập lệnh Python hoặc Jupyter Notebook. Đầu tiên bạn nhập thư viện psycopg2, sau đó bạn sử dụng. connect[] để truyền các tham số liên quan. Cuối cùng, bạn tạo một đối tượng con trỏ để chạy các lệnh PostgreSQL tới cơ sở dữ liệu. Dưới đây là đoạn mã của quy trình này

Một kết nối mẫu tới cơ sở dữ liệu PostgreSQL trong một tệp

Đoạn mã trên kết nối với cơ sở dữ liệu cục bộ có tên là “nhà cung cấp” và truy vấn tất cả nội dung của bảng “nhà cung cấp”. Tên người dùng và mật khẩu là “postgres” và hiển thị rõ ràng cho bất kỳ ai có quyền truy cập vào tập lệnh này. Tham số cổng là không cần thiết nếu sử dụng cổng PostgreSQL mặc định 5432, tôi đã thêm nó để hiển thị định dạng thông thường. Sau khi tôi truy vấn tất cả dữ liệu từ bảng “nhà cung cấp”, tôi đã đóng con trỏ và kết nối để giải phóng tài nguyên băng thông của máy chủ

[3] Kết nối với tệp cấu hình và khởi tạo

Trong môi trường chuyên nghiệp, máy chủ có nhiều biện pháp bảo vệ bao gồm tên người dùng và mật khẩu riêng cho từng nhân viên. Mỗi tài khoản người dùng sẽ có các quyền tùy chỉnh sẽ xác định thông tin nào họ có thể truy cập và cập nhật. Nếu bạn đang lưu trữ thông tin này trên GitHub cho mục đích cộng tác, bạn sẽ muốn giữ bí mật thông tin đăng nhập của mình bằng cách lưu trữ chúng trong một tệp riêng biệt. Đây là nơi phát huy tác dụng của các tệp pip install psycopg22. Tôi sẽ làm theo Hướng dẫn PostgreSQL. com hướng dẫn cho phương pháp này

Ý tưởng chung là tập lệnh Python/tệp Jupyter Notebook sẽ nhập thông tin đăng nhập của tệp khởi tạo. Chỉ tập lệnh Python sẽ được chia sẻ để bảo vệ thông tin đăng nhập của tác giả. Sẽ có một tệp thứ ba để phân tích các tham số được lưu trữ trong tệp khởi tạo theo cách mà psycopg2 có thể diễn giải chúng. Nội dung của tệp khởi tạo, pip install psycopg23 là

Nội dung của tệp cơ sở dữ liệu. ban đầu

Các tham số của tệp khởi tạo có thể được phân tích cú pháp trong một tệp riêng biệt hoặc trong tệp chính mà chúng tôi dự định thao tác dữ liệu trong. Một tệp riêng biệt là tùy chọn tốt hơn vì chúng tôi không muốn sao chép và dán các khối mã lớn mỗi khi thực hiện truy vấn PostgreSQL. Tệp pip install psycopg24 lấy dữ liệu từ tệp khởi tạo và trả về một từ điển các tham số trong đó khóa là tên tham số [văn bản màu xanh ở trên] và giá trị là giá trị tham số thực [văn bản màu xanh ở trên]

pip install psycopg25

Tệp pip install psycopg24 được điều chỉnh từ PostgreSQLTutorial. com và sử dụng lớp ConfigParser[] của Python

cấu hình. py sẽ được nhập trong tập lệnh Python chính hoặc Jupyter Notebook. Hàm lấy nội dung của tệp khởi tạo và trả về một từ điển các tham số

Tập lệnh Python chính nhập và sử dụng hai tệp này được bao gồm trong ý chính bên dưới. Tệp pip install psycopg23 sẽ được đưa vào tệp .gitignore để bảo vệ mật khẩu của tác giả

Phần 3. Sử dụng Python để thao tác dữ liệu PostgreSQL

Khi bạn kết nối với cơ sở dữ liệu PostgreSQL, bạn có thể truy vấn dữ liệu cần thiết cho phân tích của mình. Kết quả của truy vấn có thể được hiển thị trong khung dữ liệu Pandas mà sau đó có thể được vận hành giống như tất cả dữ liệu được lưu trữ trong Pandas. Pandas có một vài phương thức, chẳng hạn như pip install psycopg29, cho phép chúng tôi trích xuất dữ liệu được lưu trữ PostgreSQL bằng kết nối psycopg2. Tập lệnh Python sau kết nối với cơ sở dữ liệu “nhà cung cấp” bằng cách sử dụng tệp pip install psycopg23 và pip install psycopg24, truy vấn nội dung của bảng “nhà cung cấp” và hiển thị kết quả trong khung dữ liệu Pandas bằng cách sử dụng hàm create_pandas_table

Tập lệnh Python kết nối với cơ sở dữ liệu PostgreSQL bằng tệp khởi tạo và cấu hình, đồng thời sử dụng Pandas để truy vấn dữ liệu và tạo khung dữ liệu

Khung dữ liệu Pandas với nội dung của bảng "nhà cung cấp". Phần kết luận

Khi bạn nhập dữ liệu từ cơ sở dữ liệu PostgreSQL vào tập lệnh Python hoặc Jupyter Notebook, bạn có thể áp dụng các công cụ khoa học dữ liệu mạnh mẽ để tiến hành phân tích và xây dựng các mô hình máy học. Bạn có thể bảo vệ thông tin đăng nhập của mình bằng các tệp khởi tạo, cấu hình và tệp .gitignore riêng biệt. Thư viện Pandas chứa một số phương thức cho phép chúng tôi truy vấn trực tiếp kết quả từ cơ sở dữ liệu. Toàn bộ quy trình được mô tả trong bài viết này có thể được chứa và chia sẻ trong tương lai

Làm cách nào để chạy tệp Python trong PostgreSQL?

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 để viết mã Python trong PostgreSQL?

PostgreSQL có thể được tích hợp với Python bằng cách sử dụng mô-đun psycopg2 . sycopg2 là bộ điều hợp cơ sở dữ liệu PostgreSQL cho ngôn ngữ lập trình Python. psycopg2 được viết với mục đích rất nhỏ, nhanh và ổn định như một tảng đá.

Làm cách nào để kết nối Postgres với tập lệnh Python?

Quy trình .
Nhập mô-đun trong tập lệnh Python. nhập psycopg2
Tạo kết nối tới cơ sở dữ liệu PostgreSQL bằng cách chuyển người dùng/mật khẩu thích hợp vào chuỗi kết nối sau. .
Xác định một tham số để truy cập phương thức con trỏ. .
Tạo một chuỗi truy vấn và chuyển đến phương thức con trỏ. .
Tạo vòng lặp for và in kết quả

Làm cách nào để thực thi tập lệnh Python từ thủ tục được lưu trữ trong PostgreSQL?

Các bước gọi Hàm PostgreSQL và thủ tục lưu trữ từ Python .
Nhập psycopg2. .
Kết nối với PostgreSQL từ Python. .
Nhận đối tượng con trỏ từ kết nối. .
Thực thi thủ tục hoặc chức năng được lưu trữ. .
Tìm nạp kết quả. .
Đóng đối tượng con trỏ và đối tượng kết nối cơ sở dữ liệu

Chủ Đề