Sdílet prostřednictvím


Rychlý start: Připojení pomocí ovladače mssql-python pro Python

V tomto rychlém startu připojíte skript Pythonu k databázi, kterou jste vytvořili a načetli s ukázkovými daty. Pomocí driveru mssql-python pro Python se připojujete k databázi a provádíte základní operace, jako je čtení a zapisování dat.

Ovladač mssql-python nevyžaduje žádné externí závislosti na počítačích s Windows. Ovladač nainstaluje všechno, co potřebuje, s jednou pip instalací, což vám umožní používat nejnovější verzi ovladače pro nové skripty bez přerušení jiných skriptů, které nemáte čas upgradovat a testovat.

Dokumentace mssql-python | Zdrojový kód mssql-python | Balíček (PyPi) | Visual Studio Code

Požadavky

Nastavení

Podle těchto kroků nakonfigurujte vývojové prostředí pro vývoj aplikace pomocí ovladače Pythonu mssql-python .

Poznámka:

Tento ovladač používá protokol TDS (Tabular Data Stream), který je ve výchozím nastavení povolený v SQL Serveru, databázi SQL v Prostředcích infrastruktury a Azure SQL Database. Nevyžaduje se žádná další konfigurace.

Instalace balíčku mssql-python

mssql-python Získejte balíček z PyPI.

  1. Otevřete příkazový řádek v prázdném adresáři.

  2. Nainstalujte balíček mssql-python.

    pip install mssql-python
    

Instalace balíčku python-dotenv

Získejte python-dotenv z PyPI.

  1. Ve stejném adresáři nainstalujte python-dotenv balíček.

    pip install python-dotenv
    

Kontrola nainstalovaných balíčků

Pomocí nástroje příkazového řádku PyPI můžete ověřit, že jsou nainstalované požadované balíčky.

  1. Zkontrolujte seznam nainstalovaných balíčků s příponou pip list.

    pip list
    

Vytvoření databáze SQL

Tento rychlý start vyžaduje schéma AdventureWorks2025 Lightweight na Microsoft SQL Serveru, SQL databázi v Fabric nebo Azure SQL Database.

Spuštění kódu

Vytvoření nového souboru

  1. Vytvořte nový soubor s názvem app.py.

  2. Přidejte dokumentační řetězec modulu.

    """
    Connects to a SQL database using mssql-python
    """
    
  3. Importujte balíčky, včetně mssql-python.

    from os import getenv
    from dotenv import load_dotenv
    from mssql_python import connect
    
  4. mssql-python.connect Pomocí funkce se připojte k databázi SQL.

    load_dotenv()
    conn = connect(getenv("SQL_CONNECTION_STRING"))
    
  5. V aktuálním adresáři vytvořte nový soubor s názvem .env.

  6. .env V souboru přidejte položku pro připojovací řetězec s názvem SQL_CONNECTION_STRING. Příklad zde nahraďte skutečnou hodnotou připojovacího řetězce.

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

    Návod

    Připojovací řetězec použitý zde do značné míry závisí na typu databáze SQL, ke které se připojujete. Pokud se připojujete k Azure SQL Database nebo databázi SQL ve Fabric, použijte připojovací řetězec ODBC z karty Připojovací řetězce. Možná budete muset upravit typ ověření v závislosti na vašem scénáři. Další informace o připojovacích řetězcích a jejich syntaxi najdete v referenčních informacích k syntaxi připojovacího řetězce.

Provedení dotazu

Pomocí řetězce dotazu SQL spusťte dotaz a parsujte výsledky.

  1. Vytvořte proměnnou pro řetězec dotazu SQL.

    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. Slouží cursor.execute k načtení sady výsledků z dotazu na databázi.

    cursor = conn.cursor()
    cursor.execute(SQL_QUERY)
    

    Poznámka:

    Tato funkce v podstatě přijímá jakýkoli dotaz a vrací sadu výsledků, kterou lze projít pomocí cursor.fetchone().

  3. Použijte cursor.fetchall se smyčkou foreach k získání všech záznamů z databáze. Potom záznamy vytiskněte.

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

Návod

Pokud chcete používat ověřování Microsoft Entra v systému macOS, musíte být přihlášeni spuštěním az login prostřednictvím rozhraní azure Command-Line Interface (CLI).

  1. Otevřete terminál a otestujte aplikaci.

    python app.py
    

    Tady je očekávaný výstup.

    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
    

Vložte řádek jako transakci

Bezpečně spusťte příkaz INSERT a předejte parametry. Předávání parametrů jako hodnot chrání vaši aplikaci před útoky prostřednictvím injektáže SQL .

  1. Přidejte import randrange z knihovny random do horní části souboru app.py.

    from random import randrange
    
  2. Na konci app.py přidejte kód pro vygenerování náhodného čísla výrobku.

    productNumber = randrange(1000)
    

    Návod

    Vygenerování náhodného čísla produktu tady zajistí, že tento vzorek můžete spustit několikrát.

  3. Vytvořte řetězec příkazu SQL.

    SQL_STATEMENT = """
    INSERT SalesLT.Product (
    Name,
    ProductNumber,
    StandardCost,
    ListPrice,
    SellStartDate
    ) OUTPUT INSERTED.ProductID
    VALUES (?, ?, ?, ?, CURRENT_TIMESTAMP)
    """
    
  4. Proveďte příkaz pomocí cursor.execute.

    cursor.execute(
       SQL_STATEMENT,
       (
          f'Example Product {productNumber}',
          f'EXAMPLE-{productNumber}',
          100,
          200
       )
    )
    
  5. Načtěte jeden výsledek pomocí cursor.fetchone, vytiskněte jedinečný identifikátor výsledku a pak potvrďte operaci jako transakci pomocí connection.commit.

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

    Návod

    Volitelně můžete použít connection.rollback k vrácení transakce zpět.

  6. Zavřete kurzor a připojení pomocí cursor.close a connection.close.

    cursor.close()
    conn.close()
    
  7. app.py soubor a aplikaci znovu otestujte.

    python app.py
    

    Tady je očekávaný výstup.

    Inserted Product ID : 1001
    

Další krok

Další příklady najdete v mssql-python úložišti GitHubu ovladače, kde můžete přispívat nápady nebo hlásit problémy.