Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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. Používáte mssql-python ovladač pro Python k připojení k databázi a provádění základních operací, jako je čtení a zápis 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.
Použijte příklad lokální SQL autentizace v tomto článku pouze pro lokální vývoj proti instanci SQL Server, kterou ovládáte. V případě služby Azure SQL Database, databáze SQL v řešení Fabric, sdílených vývojových prostředí, CI a nasazení do produkce začněte s ověřováním Microsoft Entra nebo jiným bezheslovým postupem.
Dokumentace mssql-python | | |
Požadavky
Python 3.10 nebo novější.
Pokud ještě nemáte Python, nainstalujte Python runtime a správce balíčků pip z python.org.
Nechcete používat vlastní prostředí? Postupujte podle Kontejner a místní vývoj a vytvořte reprodukovatelné vývojové prostředí devcontainer nebo GitHub Codespaces.
(Volitelné) Azure Command-Line Interface (CLI).
Vytvořte nebo se připojte k databázi na SQL Server, Azure SQL Database nebo SQL databázi ve Fabric. Použijte následující kroky k nastavení databáze se vzorovým AdventureWorks2025 schématem a připojovací řetězec si nechte na později.
Vytvoření databáze SQL
Vytvořte nebo se připojte k SQL databázi na jedné z následujících platforem:
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 Tabular Data Stream (TDS). SQL Server, SQL databáze ve Fabric a Azure SQL Database ve výchozím nastavení povolují TDS, takže není potřeba žádná další konfigurace.
Nainstalujte požadavky operačního systému
Nainstalujte požadavky specifické pro jednorázový operační systém. Uživatelé Windows mohou tento krok přeskočit. Pro úplné podrobnosti o platformě viz Instalace mssql-python.
Instalace balíčku mssql-python
mssql-python
Získejte balíček z PyPI.
Otevřete příkazový řádek v prázdném adresáři.
Nainstalujte balíček
mssql-python.pip install mssql-python
Nainstalovat balíček python-dotenv
Získejte balíček python-dotenv z PyPI.
Ve stejném adresáři nainstalujte python-dotenv balíček.
pip install python-dotenv
Kontrola nainstalovaných balíčků
Použijte pip list k ověření, že máte nainstalované požadované balíčky.
pip list
Spuštění kódu
Vytvoření nového souboru
Vytvořte nový soubor s názvem
app.py.Přidejte dokumentační řetězec modulu.
""" Connects to a SQL database using mssql-python """Importujte balíčky, včetně
mssql-python.from os import getenv from dotenv import load_dotenv from mssql_python import connectmssql-python.connectPomocí funkce se připojte k databázi SQL.load_dotenv() conn = connect(getenv("SQL_CONNECTION_STRING"))V aktuálním adresáři vytvořte nový soubor s názvem
.env..envV souboru přidejte položku pro připojovací řetězec s názvemSQL_CONNECTION_STRING. Použijte jeden z následujících příkladů a nahraďte zástupné hodnoty svými skutečnými hodnotami.Pro Azure SQL Database nebo SQL databázi ve Fabric začněte s Microsoft Entra authentication:
SQL_CONNECTION_STRING="Server=<server>;Database=<database>;Encrypt=yes;TrustServerCertificate=no;Authentication=ActiveDirectoryInteractive"Pro lokální SQL Server během vývoje začněte s SQL autentizací:
SQL_CONNECTION_STRING="Server=localhost,1433;Database=<database>;UID=<user_id>;PWD=<password>;Encrypt=yes;TrustServerCertificate=yes"Caution
Považujte to
.envza místní rozvojovou pohodlnost, ne za mechanismus nasazení. Nikdy ho necommitujte, nikdy nepoužívejte tento SQL autentizační vzorek ve sdílených nebo produkčních prostředích a udržujte validaci certifikátů zapnutou mimo lokální vývoj.Použijte řetězce spojení k úpravě vzorku pro pojmenované instance, kontejnery nebo pokročilá nastavení. Pokud se připojujete k Azure SQL Database nebo SQL databázi ve Fabric, použijte Microsoft Entra autentizaci pro možnosti přihlášení bez hesla a interaktivní přihlášení. Pro širší pokyny ohledně tajemství a certifikátů viz nejlepší bezpečnostní postupy.
Návod
V systému macOS funguje ověřování pomocí Microsoft Entra jak s
ActiveDirectoryInteractive, tak sActiveDirectoryDefault.ActiveDirectoryInteractivevás vyzve k přihlášení při každém spuštění skriptu. Aby se zabránilo opakovaným výzvám k přihlášení, přihlaste se jednou pomocí příkazu Azure CLIaz loginaz login a použijteActiveDirectoryDefault.ActiveDirectoryDefaultznovu použije uložené přihlašovací údaje.
Provedení dotazu
Použijte dotazovací řetězec Transact-SQL (T-SQL) k provedení dotazu a analýze výsledků.
Vytvořte proměnnou pro dotazovací řetězec T-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; """Slouží
cursor.executek načtení sady výsledků z dotazu na databázi.cursor = conn.cursor() cursor.execute(SQL_QUERY)Poznámka:
Tato funkce přijímá jakýkoli dotaz a vrací množinu výsledků. Pro iteraci přes výslednou množinu použijte kurzor.fetchone().
Použijte
cursor.fetchallse smyčkoufork získání všech záznamů z databáze. Pak si vytiskněte záznamy.records = cursor.fetchall() for r in records: print(f"{r.CustomerID}\t{r.OrderCount}\t{r.CompanyName}")app.pysoubor.Otevřete terminál a otestujte aplikaci.
python app.pyTady 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 INSERT příkaz 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 .
Přidejte import
randrangez knihovnyrandomdo horní části souboruapp.py.from random import randrangeNa konci
app.pypřidejte kód pro vygenerování náhodného čísla výrobku.productNumber = randrange(1000)Návod
Náhodné číslo produktu snižuje pravděpodobnost chyby duplicitního klíče, pokud tento vzorek spustíte vícekrát.
Vytvořte příkazový řetězec T-SQL.
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) """Proveďte příkaz pomocí
cursor.execute.cursor.execute( SQL_STATEMENT, { 'name': f'Example Product {productNumber}', 'product_number': f'EXAMPLE-{productNumber}', 'standard_cost': 100, 'list_price': 200 } )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.rollbackk vrácení transakce zpět.Zavřete kurzor a připojení pomocí
cursor.closeaconnection.close.cursor.close() conn.close()app.pysoubor a aplikaci znovu otestujte.python app.pyTady je očekávaný výstup.
Inserted Product ID : 1001