Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu hızlı başlangıçta, bir Python betiğini oluşturduğunuz ve örnek verilerle yüklediğiniz bir veritabanına bağlarsınız.
mssql-python Python sürücüsünü kullanarak veritabanınıza bağlanır ve verileri okuma ve yazma gibi temel işlemleri gerçekleştirirsiniz.
Sürücü, mssql-python Windows makinelerinde dış bağımlılık gerektirmez. Sürücü, ihtiyaç duyduğu her şeyi tek pip bir yüklemeyle yükler ve yükseltmeye ve test etmeye vaktiniz olmayan diğer betikleri bozmadan yeni betikler için sürücünün en son sürümünü kullanmanıza olanak sağlar.
Bu makaledeki yerel SQL kimlik doğrulama örneğini yalnızca kontrol ettiğiniz bir SQL Server örneğine karşı yerel geliştirme için kullanın. Azure SQL Veritabanı, Fabric’te SQL veritabanı, paylaşılan geliştirme ortamları, CI ve üretim dağıtımları için Microsoft Entra kimlik doğrulamasıyla veya başka bir parola gerektirmeyen yöntemle başlayın.
mssql-python belgeleri | mssql-python kaynak kodu | Paket (PyPI) | Visual Studio Code
Önkoşullar
Python 3.10 veya üzeri
Python'larınız yoksa, python.orgPython çalışma zamanını ve pip paket yöneticisini yükleyin.
Kendi ortamınızı kullanmak istemiyor musunuz? Container ve yerel geliştirmeyi takip ederek tekrarlanabilir bir devcontainer veya GitHub Codespaces ortamı oluşturun.
SQL Server, Azure SQL Veritabanı veya Fabric'te SQL veritabanı oluşturun veya bağlanın. Örnek şema ile bir veritabanı AdventureWorks2025 kurmak için aşağıdaki adımları kullanın ve bağlantı dizesi'i daha sonra için saklayın.
SQL veritabanı oluşturma
Aşağıdaki platformlardan birinde bir SQL veritabanı oluşturun veya bağlanın:
Kurulum
Python sürücüsünü kullanarak mssql-python bir uygulama geliştirmek üzere geliştirme ortamınızı yapılandırmak için bu adımları izleyin.
Uyarı
Bu sürücü , Tabular Data Stream (TDS) protokolünü kullanır. SQL Server, Fabric'teki SQL veritabanı ve Azure SQL Veritabanı varsayılan olarak TDS'yi etkinleştirir, yani ekstra yapılandırmaya gerek yoktur.
mssql-python paketini yükleme
mssql-python Paketi PyPI'dan alın.
Boş bir dizinde bir komut istemi açın.
mssql-pythonpaketini yükleyin.
python-dotenv paketini kur
python-dotenv paketini PyPI'den edinin.
Aynı dizinde paketi yükleyin
python-dotenv.pip install python-dotenv
Yüklü paketleri denetleme
Hedeflenen paketlerinizin yüklendiğini doğrulamak için PyPI komut satırı aracını kullanabilirsiniz.
ile
pip listyüklü paketlerin listesini denetleyin.pip list
Kodu çalıştır
Yeni dosya oluşturma
app.pyadlı yeni bir dosya oluşturun.Modül docstring ekleyin.
""" Connects to a SQL database using mssql-python """dahil olmak üzere
mssql-pythonpaketleri içeri aktarma.from os import getenv from dotenv import load_dotenv from mssql_python import connectmssql-python.connectbir SQL veritabanına bağlanmak için işlevini kullanın.load_dotenv() conn = connect(getenv("SQL_CONNECTION_STRING"))Geçerli dizinde adlı
.envyeni bir dosya oluşturun.dosyasının içine
.envbağlantı dizeniz için adlıSQL_CONNECTION_STRINGbir girdi ekleyin. Aşağıdaki örneklerden birini kullanın ve yer tutucuları gerçek değerlerinizle değiştirin.Azure SQL Veritabanı veya Fabric'teki SQL veritabanı için Microsoft Entra doğrulama ile başlayın:
SQL_CONNECTION_STRING="Server=<server_name>;Database=<database_name>;Encrypt=yes;TrustServerCertificate=no;Authentication=ActiveDirectoryInteractive"Geliştirme sırasında yerel SQL Server için, SQL kimlik doğrulama ile başlayın:
SQL_CONNECTION_STRING="Server=localhost,1433;Database=<database_name>;UID=<username>;PWD=<password>;Encrypt=yes;TrustServerCertificate=yes"Caution
Yerel
.envbir geliştirme kolaylığı olarak ele alın, bir dağıtım mekanizması olarak değil. Bunu asla commit etmeyin, bu SQL kimlik doğrulaması örneğini paylaşılan veya üretim ortamlarında asla yeniden kullanmayın ve sertifika doğrulamasını yerel geliştirme dışında etkin bırakın.Örneği adlandırılmış örnekler, kapsayıcılar veya gelişmiş ayarlar için uyarlamak üzere Bağlantı dizileri kullanın. Azure SQL Veritabanı veya Fabric'teki SQL veritabanına bağlanıyorsanız, şifresiz ve etkileşimli giriş seçenekleri için Microsoft Entra doğrulamasını kullanın. Daha geniş gizlilik ve sertifika rehberliği için Güvenlik en iyi uygulamalarına bakınız.
Sorgu yürütme
Sorguyu yürütmek ve sonuçları ayrıştırmak için SQL sorgu dizesi kullanın.
SQL sorgu dizesi için bir değişken oluşturun.
SQL_QUERY = """ SELECT TOP 5 c.CustomerID, c.CompanyName, COUNT(soh.SalesOrderID) AS OrderCount FROM SalesLT.Customer AS c LEFT OUTER JOIN SalesLT.SalesOrderHeader AS soh ON c.CustomerID = soh.CustomerID GROUP BY c.CustomerID, c.CompanyName ORDER BY OrderCount DESC; """Veritabanındaki bir sorgudan sonuç kümesi almak için kullanın
cursor.execute.cursor = conn.cursor() cursor.execute(SQL_QUERY)Uyarı
Bu fonksiyon esasen herhangi bir sorguyu kabul eder ve bir sonuç kümesi döndürür. Sonuç kümesini yineleme yapmak için cursor.fetchone() kullanabilirsiniz.
Veritabanındaki tüm kayıtları almak için
cursor.fetchall, birfordöngü ile kullanın. Sonra kayıtları bastır.records = cursor.fetchall() for r in records: print(f"{r.CustomerID}\t{r.OrderCount}\t{r.CompanyName}")Dosyayı
app.py.Tavsiye
macOS'ta hem
ActiveDirectoryInteractivehem deActiveDirectoryDefaultMicrosoft Entra kimlik doğrulaması için çalışır.ActiveDirectoryInteractivebetiği her çalıştırdığınızda oturum açmanızı ister. Tekrar tekrar giriş çağrılarını önlemek için, Azure CLI üzerinden bir kez oturum açarakaz login, çalıştırın, ardından önbelleklenmiş kimlik bilgilerini yeniden kullanan 'i kullanınActiveDirectoryDefault.Bir terminal açın ve uygulamayı test edin.
python app.pyBeklenen çıktı budur.
29485 1 Professional Sales and Service 29531 1 Remarkable Bike Store 29546 1 Bulk Discount Store 29568 1 Coalition Bike Company 29584 1 Futuristic Bikes
İşlem olarak bir satır ekle
Bir INSERT komutunu güvenli bir şekilde yürütün ve parametreleri geçirin. Parametrelerin değer olarak geçirilmesi uygulamanızı SQL ekleme saldırılarına karşı korur.
randrangekitaplığındanrandomiçeri aktarmasınıapp.pyüst kısmına ekleyin.from random import randrangeapp.pySonuna rastgele bir ürün numarası oluşturmak için kod ekleyin.productNumber = randrange(1000)Tavsiye
Burada rastgele bir ürün numarası oluşturmak, bu örneği birden çok kez çalıştırabilmenizi sağlar.
SQL deyimi dizesi oluşturun.
SQL_STATEMENT = """ INSERT SalesLT.Product ( Name, ProductNumber, StandardCost, ListPrice, SellStartDate ) OUTPUT INSERTED.ProductID VALUES (%(name)s, %(product_number)s, %(standard_cost)s, %(list_price)s, CURRENT_TIMESTAMP) """cursor.executekullanarak ifadeyi yürütün.cursor.execute( SQL_STATEMENT, { 'name': f'Example Product {productNumber}', 'product_number': f'EXAMPLE-{productNumber}', 'standard_cost': 100, 'list_price': 200 } )cursor.fetchonekullanarak tek sonucu alın, sonucun benzersiz tanımlayıcısını yazdırın ve ardındanconnection.commitkullanarak işlemi bir işlem olarak onaylayın.result = cursor.fetchone() print(f"Inserted Product ID : {result.ProductID}") conn.commit()Tavsiye
İsteğe bağlı olarak, işlemi geri almak için kullanabilirsiniz
connection.rollback.cursor.closeveconnection.closekullanarak imleci ve bağlantıyı kapatın.cursor.close() conn.close()Dosyayı
app.pyve uygulamayı yeniden test edin.python app.pyBeklenen çıktı budur.
Inserted Product ID : 1001
Sonraki Adımlar
İnşaya devam etmek için bu makaleleri kullanın:
- Yerel SQL Server, Azure SQL, konteynerler ve adlandırılmış örnekler için örneği uyarlamak için bağlantı dizileri kullanılır.
- Bağlantı yönetimi, bağlam yöneticilerini, havuzlamayı ve bağlantı ayarlarını kullanmak için.
- Kimlik doğrulama, sertifika ve bağlantı sorunlarını teşhis etmek için sorun giderme işlemleri.