Hızlı Başlangıç: PostgreSQL için Azure Veritabanı - Esnek Sunucu'da verileri bağlamak ve sorgulamak için Python kullanma

ŞUNLAR IÇIN GEÇERLIDIR: PostgreSQL için Azure Veritabanı - Esnek Sunucu

Bu hızlı başlangıçta Python kullanarak PostgreSQL için Azure Veritabanı esnek bir sunucu örneğine bağlanacaksınız. Ardından SQL deyimlerini kullanarak Mac, Ubuntu Linux ve Windows platformlarındaki veritabanındaki verileri sorgular, ekler, güncelleştirir ve silersiniz.

Bu makalede Python kullanarak geliştirme konusunda bilgi sahibi olduğunuz ancak esnek PostgreSQL için Azure Veritabanı sunucuyla çalışmaya yeni olduğunuz varsayılır.

Önkoşullar

  • Etkin aboneliği olan bir Azure hesabı. Ücretsiz hesap oluşturun.
  • PostgreSQL için Azure Veritabanı esnek sunucu örneği. esnek PostgreSQL için Azure Veritabanı sunucu örneği oluşturmak için Bkz. Azure portalını kullanarak PostgreSQL için Azure Veritabanı - Esnek Sunucu örneği oluşturma.
  • Python 2.7 veya 3.6+.
  • En son pip paketi yükleyicisi.

İstemci iş istasyonunuzu hazırlama

  • Özel erişim (VNet Tümleştirmesi) ile PostgreSQL için Azure Veritabanı esnek sunucu örneğinizi oluşturduysanız, sunucunuzla aynı sanal ağ içindeki bir kaynaktan sunucunuza bağlanmanız gerekir. Bir sanal makine oluşturabilir ve bunu PostgreSQL için Azure Veritabanı esnek sunucu örneğiniz ile oluşturulan sanal ağa ekleyebilirsiniz. Azure CLI kullanarak PostgreSQL için Azure Veritabanı - Esnek Sunucu sanal ağı oluşturma ve yönetme bölümüne bakın.
  • Genel erişim (izin verilen IP adresleri) ile PostgreSQL için Azure Veritabanı esnek sunucu örneğinizi oluşturduysanız, yerel IP adresinizi sunucunuzdaki güvenlik duvarı kuralları listesine ekleyebilirsiniz. Azure CLI kullanarak PostgreSQL için Azure Veritabanı - Esnek Sunucu güvenlik duvarı kuralları oluşturma ve yönetme bölümüne bakın.

PostgreSQL için Python kitaplıklarını yükleme

Psycopg2 modülü PostgreSQL veritabanına bağlanmayı ve veritabanını sorgulamayı sağlar ve Linux, macOS veya Windows tekerlek paketi olarak kullanılabilir. Tüm bağımlılıklar dahil olmak üzere modülün ikili sürümünü yükleyin.

yüklemek psycopg2için bir terminal veya komut istemi açın ve komutunu pip install psycopg2çalıştırın.

Veritabanı bağlantı bilgilerini alma

PostgreSQL için Azure Veritabanı esnek bir sunucu örneğine Bağlan için tam sunucu adı ve oturum açma kimlik bilgileri gerekir. Bu bilgileri Azure portalından alabilirsiniz.

  1. Azure portalında PostgreSQL için Azure Veritabanı esnek sunucu adınızı arayın ve seçin.

  2. Sunucunun Genel Bakış sayfasında, tam Sunucu adını ve Yönetici kullanıcı adını kopyalayın. Tam Sunucu adı her zaman my-server-name.postgres.database.azure.com> biçimindedir<.

    Yönetici parolanıza da ihtiyacınız vardır. Unutursanız, genel bakış sayfasından sıfırlayabilirsiniz.

Python örneklerini çalıştırma

Bu makaledeki her kod örneği için:

  1. Metin düzenleyicisinde yeni bir dosya oluşturun.

  2. Kod örneğini dosyaya ekleyin. Kodda şunu değiştirin:

    • <server-name> ve <admin-username> Azure portalından kopyaladığınız değerlerle birlikte.
    • <admin-password> öğesini seçin.
    • <database-name>PostgreSQL için Azure Veritabanı esnek sunucu veritabanınızın adıyla. Sunucunuzu oluşturduğunuzda postgres adlı varsayılan veritabanı otomatik olarak oluşturuldu. SQL komutlarını kullanarak bu veritabanını yeniden adlandırabilir veya yeni bir veritabanı oluşturabilirsiniz.
  3. Dosyayı proje klasörünüzde postgres-insert.py gibi bir .py uzantısıyla kaydedin. Windows için, dosyayı kaydederken UTF-8 kodlamasının seçili olduğundan emin olun.

  4. Dosyayı çalıştırmak için, bir komut satırı arabiriminde proje klasörünüz olarak değiştirin ve ardından dosya adını yazın python , örneğin python postgres-insert.py.

Tablo oluşturma ve veri ekleme

Aşağıdaki kod örneği psycopg2.connect işlevini kullanarak PostgreSQL için Azure Veritabanı esnek sunucu veritabanınıza bağlanır ve sql INSERT deyimiyle verileri yükler. cursor.execute işlevi SQL sorgusunu veritabanına karşı yürütür.

import psycopg2

# Update connection string information 
host = "<server-name>"
dbname = "<database-name>"
user = "<admin-username>"
password = "<admin-password>"
sslmode = "require"

# Construct connection string
conn_string = "host={0} user={1} dbname={2} password={3} sslmode={4}".format(host, user, dbname, password, sslmode)
conn = psycopg2.connect(conn_string) 
print("Connection established")
cursor = conn.cursor()

# Drop previous table of same name if one exists
cursor.execute("DROP TABLE IF EXISTS inventory;")
print("Finished dropping table (if existed)")

# Create a table
cursor.execute("CREATE TABLE inventory (id serial PRIMARY KEY, name VARCHAR(50), quantity INTEGER);")
print("Finished creating table")

# Insert some data into the table
cursor.execute("INSERT INTO inventory (name, quantity) VALUES (%s, %s);", ("banana", 150))
cursor.execute("INSERT INTO inventory (name, quantity) VALUES (%s, %s);", ("orange", 154))
cursor.execute("INSERT INTO inventory (name, quantity) VALUES (%s, %s);", ("apple", 100))
print("Inserted 3 rows of data")

# Clean up
conn.commit()
cursor.close()
conn.close()

Kod başarıyla çalıştırıldığında aşağıdaki çıkışı üretir:

Command-line output

Verileri okuma

Aşağıdaki kod örneği, PostgreSQL için Azure Veritabanı esnek sunucu veritabanınıza bağlanır ve verileri okumak için SQL SELECT deyimiyle cursor.execute kullanır. Bu işlev bir sorguyu kabul eder ve cursor.fetchall() kullanarak yinelemek için bir sonuç kümesi döndürür

import psycopg2

# Update connection string information
host = "<server-name>"
dbname = "<database-name>"
user = "<admin-username>"
password = "<admin-password>"
sslmode = "require"

# Construct connection string
conn_string = "host={0} user={1} dbname={2} password={3} sslmode={4}".format(host, user, dbname, password, sslmode)
conn = psycopg2.connect(conn_string) 
print("Connection established")
cursor = conn.cursor()

# Fetch all rows from table
cursor.execute("SELECT * FROM inventory;")
rows = cursor.fetchall()

# Print all rows
for row in rows:
    print("Data row = (%s, %s, %s)" %(str(row[0]), str(row[1]), str(row[2])))

# Cleanup
conn.commit()
cursor.close()
conn.close()

Verileri güncelleştirme

Aşağıdaki kod örneği, PostgreSQL için Azure Veritabanı esnek sunucu veritabanınıza bağlanır ve verileri güncelleştirmek için SQL UPDATE deyimiyle cursor.execute kullanır.

import psycopg2

# Update connection string information
host = "<server-name>"
dbname = "<database-name>"
user = "<admin-username>"
password = "<admin-password>"
sslmode = "require"

# Construct connection string
conn_string = "host={0} user={1} dbname={2} password={3} sslmode={4}".format(host, user, dbname, password, sslmode)
conn = psycopg2.connect(conn_string) 
print("Connection established")
cursor = conn.cursor()

# Update a data row in the table
cursor.execute("UPDATE inventory SET quantity = %s WHERE name = %s;", (200, "banana"))
print("Updated 1 row of data")

# Cleanup
conn.commit()
cursor.close()
conn.close()

Veri silme

Aşağıdaki kod örneği, PostgreSQL için Azure Veritabanı esnek sunucu veritabanınıza bağlanır ve daha önce eklediğiniz bir envanter öğesini silmek için SQL DELETE deyimiyle cursor.execute kullanır.

import psycopg2

# Update connection string information
host = "<server-name>"
dbname = "<database-name>"
user = "<admin-username>"
password = "<admin-password>"
sslmode = "require"

# Construct connection string
conn_string = "host={0} user={1} dbname={2} password={3} sslmode={4}".format(host, user, dbname, password, sslmode)
conn = psycopg2.connect(conn_string) 
print("Connection established")
cursor = conn.cursor()

# Delete data row from table
cursor.execute("DELETE FROM inventory WHERE name = %s;", ("orange",))
print("Deleted 1 row of data")

# Cleanup
conn.commit()
cursor.close()
conn.close()

Sonraki adımlar