Hướng dẫn call postgresql function from python - gọi hàm postgresql từ python

Tóm tắt: Trong hướng dẫn này, bạn sẽ tìm hiểu cách gọi các chức năng của PostgreSQL từ chương trình Python.: in this tutorial, you will learn how to call PostgreSQL functions from a Python program.

Gọi chức năng PostgreSQL trong các bước Python

Để gọi chức năng PostgreSQL từ chương trình Python, bạn sử dụng các bước sau:

Đầu tiên, hãy tạo kết nối cơ sở dữ liệu mới đến máy chủ cơ sở dữ liệu PostgreSQL bằng cách gọi hàm connect() của mô -đun ____10.

conn = psycopg2.connect(dsn)

Code language: Python (python)

Phương thức connect() trả về một thể hiện mới của lớp

cur = conn.cursor()

Code language: SQL (Structured Query Language) (sql)
2.

Tiếp theo, tạo một con trỏ mới bằng cách gọi phương thức

cur = conn.cursor()

Code language: SQL (Structured Query Language) (sql)
3 của đối tượng kết nối.

cur = conn.cursor()

Code language: SQL (Structured Query Language) (sql)

Sau đó, chuyển tên của hàm và các giá trị đầu vào tùy chọn cho phương thức

cur = conn.cursor()

Code language: SQL (Structured Query Language) (sql)
4 của đối tượng con trỏ.

cur.callproc('function_name', (value1,value2))

Code language: SQL (Structured Query Language) (sql)

Trong nội bộ, phương thức & nbsp; ________ 14 dịch các giá trị gọi và đầu vào chức năng thành câu lệnh sau:

SELECT * FROM function_name(value1,value2);

Code language: Python (python)

Do đó, bạn có thể sử dụng phương thức

cur = conn.cursor()

Code language: SQL (Structured Query Language) (sql)
6 của đối tượng con trỏ để gọi hàm như sau:

cur.execute("SELECT * FROM function_name( %s,%s); ",(value1,value2))

Code language: Python (python)

Cả hai tuyên bố đều có cùng một hiệu ứng.

Sau đó, xử lý bộ kết quả được trả về bởi hàm bằng phương pháp

cur = conn.cursor()

Code language: SQL (Structured Query Language) (sql)
7, & nbsp; ____ 18, hoặc & nbsp; ________ 19.

Cuối cùng, hãy gọi phương thức

cur.callproc('function_name', (value1,value2))

Code language: SQL (Structured Query Language) (sql)
0 của các đối tượng

cur.callproc('function_name', (value1,value2))

Code language: SQL (Structured Query Language) (sql)
1 và

cur = conn.cursor()

Code language: SQL (Structured Query Language) (sql)
2 để đóng giao tiếp với máy chủ cơ sở dữ liệu PostgreSQL.

cur.close() conn.close()

Code language: Python (python)

Gọi một ví dụ về chức năng

Hàm

cur.callproc('function_name', (value1,value2))

Code language: SQL (Structured Query Language) (sql)
3 sau đây trả về một danh sách các phần được cung cấp bởi một nhà cung cấp được chỉ định.

CREATE OR REPLACE FUNCTION get_parts_by_vendor(id integer) RETURNS TABLE(part_id INTEGER, part_name VARCHAR) AS $$ BEGIN RETURN QUERY SELECT parts.part_id, parts.part_name FROM parts INNER JOIN vendor_parts on vendor_parts.part_id = parts.part_id WHERE vendor_id = id; END; $$ LANGUAGE plpgsql;

Code language: SQL (Structured Query Language) (sql)

Hàm

cur.callproc('function_name', (value1,value2))

Code language: SQL (Structured Query Language) (sql)
4 sau đây gọi hàm

cur.callproc('function_name', (value1,value2))

Code language: SQL (Structured Query Language) (sql)
3:

#!/usr/bin/python import psycopg2 from config import config def get_parts(vendor_id): """ get parts provided by a vendor specified by the vendor_id """ conn = None try: # read database configuration params = config() # connect to the PostgreSQL database conn = psycopg2.connect(**params) # create a cursor object for execution cur = conn.cursor() # another way to call a function # cur.execute("SELECT * FROM get_parts_by_vendor( %s); ",(vendor_id,)) cur.callproc('get_parts_by_vendor', (vendor_id,)) # process the result set row = cur.fetchone() while row is not None: print(row) row = cur.fetchone() # close the communication with the PostgreSQL database server cur.close() except (Exception, psycopg2.DatabaseError) as error: print(error) finally: if conn is not None: conn.close()

Code language: Python (python)

Các cuộc gọi sau đây gọi chức năng

cur.callproc('function_name', (value1,value2))

Code language: SQL (Structured Query Language) (sql)
4 để lấy danh sách các bộ phận do nhà cung cấp với ID 1:

if __name__ == '__main__': get_parts(1)

Code language: Python (python)

Trong hướng dẫn này, bạn đã học từng bước cách gọi chức năng PostgreSQL trong Python.

Hướng dẫn này có hữu ích không?

Làm cách nào để kết nối postgres với kịch bản Python?

Thiết lập kết nối bằng Python, bạn có thể tạo các kết nối mới bằng hàm Connect (). Điều này chấp nhận các tham số kết nối cơ bản như dbname, người dùng, mật khẩu, máy chủ, cổng và trả về một đối tượng kết nối. Sử dụng chức năng này, bạn có thể thiết lập kết nối với PostgreSQL.create new connections using the connect() function. This accepts the basic connection parameters such as dbname, user, password, host, port and returns a connection object. Using this function, you can establish a connection with the PostgreSQL.

Bạn có thể sử dụng Postgres với Python không?

Kết nối với PostgreSQL bằng Python.Trước khi bạn có thể truy cập cơ sở dữ liệu PostgreSQL bằng Python, bạn phải cài đặt một (hoặc nhiều) các gói sau trong môi trường ảo: PsyCOPG2: Gói này chứa mô -đun PsyCOPG2.Pygresql: Gói này chứa mô -đun PGDB.Before you can access PostgreSQL databases using Python, you must install one (or more) of the following packages in a virtual environment: psycopg2: This package contains the psycopg2 module. PyGreSQL: This package contains the pgdb module.

Làm thế nào để bạn gọi một thủ tục được lưu trữ trong postgresql?

Để thực hiện thủ tục trong PostgreSQL, hãy sử dụng câu lệnh CALL thay vì chọn câu lệnh.Đây là một trong những khác biệt giữa thủ tục và chức năng.Bạn cũng có thể chỉ định tên tham số trong câu lệnh CALL.Đây là một cách khác để thực hiện thủ tục.use the CALL statement instead of SELECT statement. This is one of the differences between PROCEDURE and FUNCTION. You can also specify parameter name in the CALL statement. This is another way to execute the PROCEDURE.

Làm thế nào tìm nạp dữ liệu từ cơ sở dữ liệu PostgreSQL trong Python?

Bạn có thể tìm nạp dữ liệu từ postgresql bằng phương thức fetch () được cung cấp bởi psycopg2.Lớp con trỏ cung cấp ba phương thức là fetchall (), fetchmany () và, fetchone () trong đó, phương thức fetchall () lấy tất cả các hàng trong bộ 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.