Megosztás a következőn keresztül:


Rövid útmutató: Csatlakozás a Python mssql-python illesztőprogramjával

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.

az mssql-python dokumentációja | mssql-python forráskód | Csomag (PyPi) | Visual Studio Code

Előfeltételek

  • Python 3

    • Ha még nem rendelkezik Pythonnal, telepítse a Python futtatókörnyezetet és a Python-csomagindexet (PyPI) csomagkezelőtpython.org.

    • Nem szeretné a saját környezetét használni? Nyissa meg devcontainerként a GitHub Codespaces használatával.

  • (Nem kötelező) Azure Command-Line Interface (CLI)

  • Sql Serveren, Azure SQL Database-en vagy SQL Database-adatbázison a Fabricben a AdventureWorks2025 mintasémával és egy érvényes kapcsolati sztringgel.

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, amely alapértelmezés szerint engedélyezve van az SQL Serverben, az SQL Database-ben a Fabricben és az Azure SQL Database-ben. Nincs szükség további konfigurációra.

Az mssql-python csomag telepítése

Szerezze be a mssql-python csomagot a PyPI-ból.

  1. Nyisson meg egy parancssort egy üres könyvtárban.

  2. Telepítse az mssql-python csomagot.

    pip install mssql-python
    

Python-dotenv-csomag telepítése

Szerezze be a python-dotenv a PyPI-ról.

  1. Ugyanabban a könyvtárban telepítse a python-dotenv csomagot.

    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.

  1. Ellenőrizze a telepített csomagok listáját a következővel pip list: .

    pip list
    

SQL-adatbázis létrehozása

Ehhez a gyorsindítási útmutatóhoz az AdventureWorks2025 Lightweight sémára van szükség a Microsoft SQL Serveren, a Fabric SQL-adatbázisban vagy az Azure SQL Database-ben.

A kód futtatása

Új fájl létrehozása

  1. Hozzon létre egy app.pynevű új fájlt.

  2. Modul-dokumentáció hozzáadása.

    """
    Connects to a SQL database using mssql-python
    """
    
  3. Csomagok importálása, beleértve a mssql-python.

    from os import getenv
    from dotenv import load_dotenv
    from mssql_python import connect
    
  4. Használja a mssql-python.connect függvényt, hogy csatlakozzon egy SQL-adatbázishoz.

    load_dotenv()
    conn = connect(getenv("SQL_CONNECTION_STRING"))
    
  5. Az aktuális könyvtárban hozzon létre egy új fájlt..env

  6. A .env fájlban adjon hozzá egy bejegyzést a kapcsolati sztringhez egy megadott névvel SQL_CONNECTION_STRING. Cserélje le az itt látható példát a tényleges kapcsolati karakterláncértékre.

    SQL_CONNECTION_STRING="Server=<server_name>;Database={<database_name>};Encrypt=yes;TrustServerCertificate=no;Authentication=ActiveDirectoryInteractive"
    

    Jótanács

    Az itt használt kapcsolati sztring nagyban függ attól, hogy milyen TÍPUSÚ SQL-adatbázishoz csatlakozik. Ha Azure SQL Database-hez vagy SQL-adatbázishoz csatlakozik a Fabricben, használja az ODBC kapcsolati sztringet a kapcsolati sztringek lapról. Előfordulhat, hogy a forgatókönyvtől függően módosítania kell a hitelesítési típust. A kapcsolati sztringekről és azok szintaxisáról további információt a kapcsolati sztring szintaxisának hivatkozásában talál.

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.

  1. 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;
    """
    
  2. Az cursor.execute segí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 minden lekérdezést elfogad, és eredményhalmazt ad vissza, amely a cursor.fetchone() használatával iterálható át.

  3. Használja a cursor.fetchall-t egy foreach ciklussal, hogy lekérje az összes rekordot az adatbázisból. Ezután nyomtassa ki a rekordokat.

    records = cursor.fetchall()
    for r in records:
      print(f"{r.CustomerID}\t{r.OrderCount}\t{r.CompanyName}")
    
  4. Mentse a app.py fájlt.

Jótanács

A Microsoft Entra Authentication macOS rendszerben való használatához be kell jelentkeznie az az login használatával.

  1. Nyisson meg egy terminált, és tesztelje az alkalmazást.

    python app.py
    

    Itt 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 INSERT utasítást, é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.

  1. Importálás hozzáadása a randrange számára a random könyvtárból a app.py elejére.

    from random import randrange
    
  2. A app.py vé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.

  3. SQL utasításszöveg létrehozása.

    SQL_STATEMENT = """
    INSERT SalesLT.Product (
    Name,
    ProductNumber,
    StandardCost,
    ListPrice,
    SellStartDate
    ) OUTPUT INSERTED.ProductID
    VALUES (?, ?, ?, ?, CURRENT_TIMESTAMP)
    """
    
  4. Hajtsa végre az utasítást a következővel cursor.execute: .

    cursor.execute(
       SQL_STATEMENT,
       (
          f'Example Product {productNumber}',
          f'EXAMPLE-{productNumber}',
          100,
          200
       )
    )
    
  5. 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ént connection.commit.

    result = cursor.fetchone()
    print(f"Inserted Product ID : {result['ProductID']}")
    conn.commit()
    

    Jótanács

    connection.rollback Lehetőség van a tranzakció visszaállítására is.

  6. Zárja be a kurzort és a kapcsolatot a cursor.close és connection.close segítségével.

    cursor.close()
    conn.close()
    
  7. Mentse a app.py fájlt, és tesztelje újra az alkalmazást.

    python app.py
    

    Itt a várt kimenet.

    Inserted Product ID : 1001
    

Következő lépés

Látogasson el az mssql-python illesztőprogram GitHub-adattárába további példákért, ötletek megosztásához, vagy problémák jelentéséhez.