Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ebben a rövid útmutatóban egy Python-szkriptet csatlakoztat egy adatbázishoz, amelyet ön hozott létre és töltött be mintaadatokkal. A Python illesztőprogramját mssql-python használva csatlakozhat az adatbázishoz, és alapvető műveleteket hajthat végre, például az adatok olvasását és írását.
Az mssql-python illesztőprogram nem igényel külső függőségeket a Windows rendszerű gépeken. Az illesztőprogram egyetlen pip telepítéssel mindent telepít, amire szüksége van, így az illesztőprogram legújabb verzióját használhatja az új szkriptekhez anélkül, hogy megszegi azokat a szkripteket, amelyek frissítésére és tesztelésére nincs ideje.
A cikkben szereplő helyi SQL hitelesítési példát csak helyi fejlesztéshez használd egy olyan SQL Server instance ellen, amelyet te irányítasz. Az Azure SQL Database, a Fabricben futó SQL-adatbázis, a megosztott fejlesztői környezetek, a CI és az éles környezetbe történő üzembe helyezések esetében kezdjen a Microsoft Entra-hitelesítés vagy egy másik jelszó nélküli megoldás használatával.
az mssql-python dokumentációja | mssql-python forráskód | Csomag (PyPI) | Visual Studio Code
Előfeltételek
Python 3.10 vagy újabb verzió
Ha még nem rendelkezik Pythonnal, telepítse a Python futtatókörnyezetet és a pip csomagkezelőta python.org.
Nem szeretné használni a saját környezetét? Kövesd a Container és a helyi fejlesztést, hogy reprodukálható devcontainer vagy GitHub Codespaces környezetet hozz létre.
Hozzon létre vagy csatlakozzon egy adatbázishoz az SQL Server-en, Azure SQL Database-en vagy SQL adatbázishoz a Fabric-ben. Az alábbi lépésekkel állítson be egy adatbázist a AdventureWorks2025 mintasémával, és őrizze meg a kapcsolati karakterláncot későbbi használatra.
SQL-adatbázis létrehozása
Létrehozni vagy csatlakozni SQL adatbázishoz az alábbi platformok egyikén:
Beállítás
Ezeket a lépéseket követve konfigurálhatja a fejlesztési környezetet egy alkalmazás Python-illesztőprogram használatával mssql-python történő fejlesztéséhez.
Megjegyzés:
Ez az illesztőprogram a Tabular Data Stream (TDS) protokollt használja. Az SQL Server, az SQL adatbázis a Fabric-ben és az Azure SQL Database alapértelmezettben engedélyezi a TDS-t, így nincs szükség extra konfigurációra.
Az mssql-python csomag telepítése
Szerezze be a mssql-python csomagot a PyPI-ból.
Nyisson meg egy parancssort egy üres könyvtárban.
Telepítse az
mssql-pythoncsomagot.
Telepítsd a python-dotenv csomagot
Szerezd meg a python-dotenv csomagot a PyPI-tól.
Ugyanabban a könyvtárban telepítse a
python-dotenvcsomagot.pip install python-dotenv
Telepített csomagok ellenőrzése
A PyPI parancssori eszközével ellenőrizheti, hogy a tervezett csomagok telepítve vannak-e.
Ellenőrizze a telepített csomagok listáját a következővel
pip list: .pip list
A kód futtatása
Új fájl létrehozása
Hozzon létre egy
app.pynevű új fájlt.Modul-dokumentáció hozzáadása.
""" Connects to a SQL database using mssql-python """Csomagok importálása, beleértve a
mssql-python.from os import getenv from dotenv import load_dotenv from mssql_python import connectHasználja a
mssql-python.connectfüggvényt, hogy csatlakozzon egy SQL-adatbázishoz.load_dotenv() conn = connect(getenv("SQL_CONNECTION_STRING"))Az aktuális könyvtárban hozzon létre egy új fájlt.
.envA
.envfájlban adjon hozzá egy bejegyzést a kapcsolati sztringhez egy megadott névvelSQL_CONNECTION_STRING. Használj az alábbi példák egyikét, és cseréld le a helykitöltőket a tényleges értékeidre.Az Azure SQL Database vagy a Fabricben található SQL-adatbázis esetén kezdje a Microsoft Entra-hitelesítéssel:
SQL_CONNECTION_STRING="Server=<server_name>;Database=<database_name>;Encrypt=yes;TrustServerCertificate=no;Authentication=ActiveDirectoryInteractive"Helyi SQL Server fejlesztés közben kezdje az SQL hitelesítéssel:
SQL_CONNECTION_STRING="Server=localhost,1433;Database=<database_name>;UID=<username>;PWD=<password>;Encrypt=yes;TrustServerCertificate=yes"Caution
Kezeld
.envinkább helyi fejlesztési kényelmi megoldásként, nem telepítési mechanizmusként. Soha ne commitolja, soha ne használja újra ezt az SQL-hitelesítési mintát megosztott vagy éles környezetben, és a helyi fejlesztésen kívül tartsa engedélyezve a tanúsítvány-ellenőrzést.A minta elnevezett példányokhoz, tárolókhoz vagy speciális beállításokhoz való testreszabásához használja a kapcsolati karakterláncokat. Ha Azure SQL Database-hez vagy SQL adatbázishoz csatlakozol Fabric-ben, használd a Microsoft Entra hitelesítést jelszó nélküli és interaktív bejelentkezési lehetőségekhez. Szélesebb körű titkos és tanúsítványi útmutatóért lásd: Biztonsági legjobb gyakorlatok.
Lekérdezés végrehajtása
Sql-lekérdezési sztring használatával hajthat végre egy lekérdezést, és elemezheti az eredményeket.
Hozzon létre egy változót az SQL-lekérdezési sztringhez.
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; """Az
cursor.executesegítségével egy eredményhalmazt kérhetünk le a lekérdezésből az adatbázison.cursor = conn.cursor() cursor.execute(SQL_QUERY)Megjegyzés:
Ez a függvény lényegében bármilyen lekérdezést elfogad, és eredményhalmazt ad vissza. Az eredményhalmazon való iteráláshoz használd a cursor.fetchone() metódust.
Használja a
cursor.fetchall-t egyforciklussal, hogy lekérje az összes rekordot az adatbázisból. Ezután nyomtatd ki a feljegyzéseket.records = cursor.fetchall() for r in records: print(f"{r.CustomerID}\t{r.OrderCount}\t{r.CompanyName}")Mentse a
app.pyfájlt.Jótanács
macOS rendszeren mind a
ActiveDirectoryInteractive, mind aActiveDirectoryDefaulthasználható a Microsoft Entra-hitelesítéshez.ActiveDirectoryInteractiveminden alkalommal, amikor futtatja a szkriptet, arra kéri, hogy jelentkezzen be. Az ismétlődő bejelentkezési promptok elkerülése érdekében egyszer jelentkezz be az Azure CLI-n keresztül aaz loginfuttatással , majd használdActiveDirectoryDefault, amely újrahasználja a gyorsítótározott hitelesítő adatokat.Nyisson meg egy terminált, és tesztelje az alkalmazást.
python app.pyItt a várt kimenet.
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
Sor beszúrása tranzakcióként
Biztonságosan hajthat végre egy utasítást INSERT , és paramétereket adhat át. A paraméterek értékként való átadása megvédi az alkalmazást az SQL-injektálási támadásoktól.
Importálás hozzáadása a
randrangeszámára arandomkönyvtárból aapp.pyelejére.from random import randrangeA
app.pyvégén adjon hozzá kódot egy véletlenszerű termékszám generálásához.productNumber = randrange(1000)Jótanács
Ha véletlenszerű termékszámot hoz létre, az biztosítja, hogy ezt a mintát többször is futtathatja.
SQL utasításszöveg létrehozása.
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) """Hajtsa végre az utasítást a következővel
cursor.execute: .cursor.execute( SQL_STATEMENT, { 'name': f'Example Product {productNumber}', 'product_number': f'EXAMPLE-{productNumber}', 'standard_cost': 100, 'list_price': 200 } )Az egyetlen eredményt olvasd be
cursor.fetchone, nyomtasd ki az eredmény egyedi azonosítóját, majd véglegesítsd a műveletet tranzakciókéntconnection.commit.result = cursor.fetchone() print(f"Inserted Product ID : {result.ProductID}") conn.commit()Jótanács
connection.rollbackLehetőség van a tranzakció visszaállítására is.Zárja be a kurzort és a kapcsolatot a
cursor.closeésconnection.closesegítségével.cursor.close() conn.close()Mentse a
app.pyfájlt, és tesztelje újra az alkalmazást.python app.pyItt a várt kimenet.
Inserted Product ID : 1001
Következő lépések
Használd ezeket a cikkeket, hogy tovább építsd:
- Kapcsolati karakterláncok a példa helyi SQL Serverhez, Azure SQL-hez, tárolókhoz és elnevezett példányokhoz való igazításához.
- Kapcsolatkezelés kontextuskezelők, kapcsolat-újrafelhasználás és kapcsolati beállítások használatához.
- Hibaelhárítás a hitelesítési, tanúsítványi és kapcsolódási problémák diagnosztizálásához.