Python kết nối với mã postgresql như thế nào?

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ỉ

Tổng quan

Đặc trưng

  • Nhiều kết nối/đối tượng kết nối (Không bắt buộc sử dụng một singleton)
  • Quản lý giao dịch/Phương thức
  • Trả về các cột dưới dạng Từ điển Python (Băm) với tên cột
  • lọc tự động
  • đối tượng con trỏ
  • Tổng hợp kết nối (ví dụ sẽ được bổ sung sau)
  • Truy vấn không đồng bộ (Thread Safe)

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 Postgres

Kế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ọn

Ví 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ột

Trong 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.