Psycopg2 là trình điều khiển trưởng thành để tương tác với PostgreSQL từ ngôn ngữ kịch bản Python. Nó được viết bằng C và cung cấp phương tiện để thực hiện đầy đủ các thao tác SQL đối với cơ sở dữ liệu PostgreSQL. Trang này tập trung vào phiên bản 2 của trình điều khiển, chỉ Show
Tổng quanĐặc trưng
Lịch sửTrang này ban đầu được phát triển bởi Bendermott, với sự đóng góp của Jonjensen và những người khác. Phong cách sách dạy nấu ăn vẫn còn, tuy nhiên trang đang được phát triển để hiện đại hóa cho Python 3. Để xem các ví dụ cụ thể về Python 2, hãy sử dụng phiên bản cuối cùng này từ năm 2015 ví dụTôi sẽ không cho rằng bạn đã hoàn toàn quen thuộc với Python trong các ví dụ dưới đây; Bạn có thể muốn sao chép các ví dụ vào trình chỉnh sửa mã yêu thích của mình để làm nổi bật cú pháp Tất cả các ví dụ mã đã được thử nghiệm trên Python 2. 6 đang chạy OpenSUSE Linux Kết nối với PostgresKết nối với Cơ sở dữ liệu Postgres bằng xác thực. Bắt và in lỗi kết nối nếu xảy ra #!/usr/bin/python import psycopg2 import sys def main(): #Define our connection string conn_string = "host='localhost' dbname='my_database' user='postgres' password='secret'" # print the connection string we will use to connect print "Connecting to database\n ->%s" % (conn_string) # get a connection, if a connect cannot be made an exception will be raised here conn = psycopg2.connect(conn_string) # conn.cursor will return a cursor object, you can use this cursor to perform queries cursor = conn.cursor() print "Connected!\n" if __name__ == "__main__": main() Thực hiện ChọnVí dụ này cho biết cách kết nối với cơ sở dữ liệu, sau đó lấy và sử dụng một đối tượng con trỏ để truy xuất các bản ghi từ một bảng Trong ví dụ này, chúng tôi sẽ giả sử cơ sở dữ liệu của bạn có tên là "my_database" trong lược đồ công khai và bảng bạn đang chọn có tên là "my_table" #!/usr/bin/python import psycopg2 import sys import pprint def main(): conn_string = "host='localhost' dbname='my_database' user='postgres' password='secret'" # print the connection string we will use to connect print "Connecting to database\n ->%s" % (conn_string) # get a connection, if a connect cannot be made an exception will be raised here conn = psycopg2.connect(conn_string) # conn.cursor will return a cursor object, you can use this cursor to perform queries cursor = conn.cursor() # execute our Query cursor.execute("SELECT * FROM my_table") # retrieve the records from the database records = cursor.fetchall() # print out the records using pretty print # note that the NAMES of the columns are not shown, instead just indexes. # for most people this isn't very useful so we'll show you how to return # columns as a dictionary (hash) in the next example. pprint.pprint(records) if __name__ == "__main__": main() Chọn/Tìm nạp Bản ghi với Tên CộtTrong ví dụ này, chúng tôi sẽ thực hiện chọn giống như chúng tôi đã làm ở trên nhưng lần này chúng tôi sẽ trả về các cột dưới dạng Từ điển Python để có tên cột Chúng tôi cũng sẽ sử dụng thay thế biến kiểu prinf của Psycopg2, cũng như một phương thức tìm nạp khác để trả về một hàng (fetchone) #!/usr/bin/python import psycopg2 #note that we have to import the Psycopg2 extras library! import psycopg2.extras import sys def main(): conn_string = "host='localhost' dbname='my_database' user='postgres' password='secret'" # print the connection string we will use to connect print "Connecting to database\n ->%s" % (conn_string) # get a connection, if a connect cannot be made an exception will be raised here conn = psycopg2.connect(conn_string) # conn.cursor will return a cursor object, you can use this query to perform queries # note that in this example we pass a cursor_factory argument that will # dictionary cursor so COLUMNS will be returned as a dictionary so we # can access columns by their name instead of index. cursor = conn.cursor(cursor_factory=psycopg2.extras.DictCursor) # tell postgres to use more work memory work_mem = 2048 # by passing a tuple as the 2nd argument to the execution function our # %s string variable will get replaced with the order of variables in # the list. In this case there is only 1 variable. # Note that in python you specify a tuple with one item in it by placing # a comma after the first variable and surrounding it in parentheses. cursor.execute('SET work_mem TO %s', (work_mem,)) # Then we get the work memory we just set -> we know we only want the # first ROW so we call fetchone. # then we use bracket access to get the FIRST value. # Note that even though we've returned the columns by name we can still # access columns by numeric index as well - which is really nice. cursor.execute('SHOW work_mem') # Call fetchone - which will fetch the first row returned from the # database. memory = cursor.fetchone() # access the column by numeric index: # even though we enabled columns by name I'm showing you this to # show that you can still access columns by index and iterate over them. print "Value: ", memory[0] # print the entire row print "Row: ", memory if __name__ == "__main__": main() Tìm nạp bản ghi bằng con trỏ phía máy chủNếu bạn có một tập hợp kết quả cực lớn cần truy xuất từ cơ sở dữ liệu của mình hoặc bạn muốn lặp qua các bản ghi của bảng mà không truy xuất toàn bộ bảng trước thì con trỏ chính là thứ bạn cần Một con trỏ giữ kết nối cơ sở dữ liệu mở và truy xuất từng bản ghi cơ sở dữ liệu khi bạn yêu cầu chúng Python tích hợp với PostgreSQL như thế nào?Thiết lập kết nối bằng python
. Đ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.
Làm cách nào để sử dụng PostgreSQL bằng Python?Để tạo bảng Postgres trong Python, chúng ta sử dụng câu lệnh SQL CREATE TABLE . Truy vấn này nên được thực hiện sau khi thiết lập kết nối với cơ sở dữ liệu. Chúng tôi cũng tạo một đối tượng con trỏ bằng cách gọi phương thức con trỏ () thuộc về đối tượng kết nối. Đối tượng con trỏ này được sử dụng để thực thi các lệnh của bạn.
Python lưu trữ dữ liệu trong PostgreSQL như thế nào?Chèn dữ liệu bằng python
. Nhập gói psycopg2. Tạo đối tượng kết nối bằng phương thức connect() bằng cách chuyển tên người dùng, mật khẩu, máy chủ (mặc định tùy chọn. localhost) và, cơ sở dữ liệu (tùy chọn) làm tham số cho nó .
Làm cách nào để đọc 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. |