Làm cách nào để sử dụng psql trong Python?

PostgreSQL là một trong những cơ sở dữ liệu nguồn mở phổ biến nhất. Nếu bạn đang xây dựng một ứng dụng web, bạn cần một cơ sở dữ liệu. Cộng đồng Python thích PostgreSQL cũng như cộng đồng PHP thích MySQL. Để "nói chuyện" với cơ sở dữ liệu PostgreSQL, các pythonistas thường sử dụng thư viện psycopg2. Nó được viết bằng ngôn ngữ lập trình C sử dụng libpq. Hãy đi sâu vào nó

Cài đặt

pip install psycopg2

Nếu bạn cài đặt psycopg2, bạn phải có thêm tệp nguồn và trình biên dịch [gcc]

  • libpq
  • libssl

Nhưng bạn có thể cài đặt nhị phân biên dịch sẵn, trong trường hợp này bạn cần thực thi

pip install psycopg2-binary

Bắt đầu

Để truy vấn cơ sở dữ liệu trước tiên chúng ta cần kết nối với nó và lấy một con trỏ

import psycopg2
conn = psycopg2.connect[dbname='database', user='db_user', 
                        password='mypassword', host='localhost']
cursor = conn.cursor[]

Bây giờ bạn phải sử dụng

pip install psycopg2-binary
1 để thực hiện các truy vấn

cursor.execute['SELECT * FROM airport LIMIT 10']
records = cursor.fetchall[]
...
cursor.close[]
conn.close[]

Khi truy vấn được gửi, bạn có thể nhận kết quả bằng các phương pháp sau

  • pip install psycopg2-binary
    
    2 — trả về một hàng
  • pip install psycopg2-binary
    
    3 — trả về một danh sách các hàng
  • pip install psycopg2-binary
    
    4 — trả về số lượng hàng đã cung cấp

Con trỏ là một đối tượng có thể lặp lại, vì vậy bạn có thể sử dụng vòng lặp for

________số 8_______

Nếu bạn muốn làm theo các phương pháp hay nhất, bạn cần đóng con trỏ và kết nối. Hãy làm điều đó theo cách Pythonic bằng trình quản lý ngữ cảnh

from contextlib import closing

with closing[psycopg2.connect[...]] as conn:
    with conn.cursor[] as cursor:
        cursor.execute['SELECT * FROM airport LIMIT 5']
        for row in cursor:
            print[row]

Theo mặc định khi bạn lặp qua một con trỏ [hoặc sử dụng các phương pháp đã đề cập ở trên], bạn sẽ nhận được một bộ, mỗi cột tương ứng với chỉ mục của nó. Nếu bạn muốn lấy giá trị theo tên cột, bạn có thể sử dụng

pip install psycopg2-binary
5 hoặc
pip install psycopg2-binary
6

from psycopg2.extras import DictCursor
with psycopg2.connect[...] as conn:
    with conn.cursor[cursor_factory=DictCursor] as cursor:
        ...

Xây dựng truy vấn động

Bạn có biết rằng bạn có thể tạo truy vấn bằng psycopg2 không?

cursor.execute['SELECT * FROM airport WHERE city_code = %s', ['ALA', ]]
for row in cursor:
    print[row]

Bạn nên ghi nhớ các quy tắc sau khi làm việc với trình giữ chỗ

  • Trình giữ chỗ phải là
    pip install psycopg2-binary
    
    7 cho tất cả các loại dữ liệu
  • Không sử dụng dấu nháy đơn cho giá trị chuỗi
  • Nếu bạn cần sử dụng ký tự
    pip install psycopg2-binary
    
    8, bạn phải viết nó là
    pip install psycopg2-binary
    
    9

Bạn cũng có thể sử dụng các đối số được đặt tên

cursor.execute[
    'SELECT * FROM engine_airport WHERE city_code = %[city_code]s', 
    {'city_code': 'ALA'}
]

Ngoài ra psycopg2 cung cấp mô-đun có tên là

import psycopg2
conn = psycopg2.connect[dbname='database', user='db_user', 
                        password='mypassword', host='localhost']
cursor = conn.cursor[]
0 có thể được sử dụng để tạo một truy vấn SQL một cách an toàn. Nó được giới thiệu trong phiên bản
import psycopg2
conn = psycopg2.connect[dbname='database', user='db_user', 
                        password='mypassword', host='localhost']
cursor = conn.cursor[]
1

from psycopg2 import sql
...
>>> with conn.cursor[] as cursor:
        columns = ['country_name_ru', 'airport_name_ru', 'city_code']

        stmt = sql.SQL['SELECT {} FROM {} LIMIT 5'].format[
            sql.SQL[','].join[map[sql.Identifier, columns]],
            sql.Identifier['airport']
        ]
        cursor.execute[stmt]

        for row in cursor:
            print[row]

giao dịch

Theo mặc định, tất cả các hướng dẫn được thực hiện bên trong một giao dịch khi mã rời khỏi trình quản lý bối cảnh [

import psycopg2
conn = psycopg2.connect[dbname='database', user='db_user', 
                        password='mypassword', host='localhost']
cursor = conn.cursor[]
2] hoặc được cam kết rõ ràng bằng cách gọi phương thức
import psycopg2
conn = psycopg2.connect[dbname='database', user='db_user', 
                        password='mypassword', host='localhost']
cursor = conn.cursor[]
3. Nếu một ngoại lệ được đưa ra bên trong trình quản lý ngữ cảnh, psycopg2 sẽ thực hiện quay lui để hoàn nguyên các thay đổi. Bạn có thể thay đổi hành vi này bằng cách đặt thuộc tính
import psycopg2
conn = psycopg2.connect[dbname='database', user='db_user', 
                        password='mypassword', host='localhost']
cursor = conn.cursor[]
4 thành
import psycopg2
conn = psycopg2.connect[dbname='database', user='db_user', 
                        password='mypassword', host='localhost']
cursor = conn.cursor[]
5. Trong trường hợp này, mọi cuộc gọi
import psycopg2
conn = psycopg2.connect[dbname='database', user='db_user', 
                        password='mypassword', host='localhost']
cursor = conn.cursor[]
6 sẽ có hiệu lực ngay lập tức trên cơ sở dữ liệu. Vui lòng lưu ý các giao dịch chạy dài do tác động xấu đến hiệu suất cơ sở dữ liệu

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.

Làm cách nào để chạy truy vấn PostgreSQL trong 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 để tương tác với postgres trong Python?

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 để viết PostgreSQL bằng Python?

Python PostgreSQL CHÈN vào Bảng cơ sở dữ liệu .
Cài đặt psycopg2 bằng pip
Thứ hai, Thiết lập kết nối cơ sở dữ liệu PostgreSQL trong Python
Tiếp theo, Xác định truy vấn Chèn. .
Thực hiện truy vấn INSERT bằng cách sử dụng con trỏ. .
Sau khi thực hiện thành công truy vấn, hãy cam kết các thay đổi của bạn với cơ sở dữ liệu

Chủ Đề