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. 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.
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.
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.
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.
Nainstalovat balíček python-dotenv
Získejte balíček python-dotenv z PyPI.
Ve stejném adresáři nainstalujte
python-dotenvbalíč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.
Zkontrolujte seznam nainstalovaných balíčků s příponou
pip list.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_name>;Database=<database_name>;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_name>;UID=<username>;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.
Provedení dotazu
Pomocí řetězce dotazu SQL spusťte dotaz a parsujte výsledky.
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; """Slouží
cursor.executek 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í 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.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. Abychom se vyhnuli opakovaným výzvám k přihlášení, přihlaste se jednou přes Azure CLI spuštěnímaz login, poté použijteActiveDirectoryDefault, které znovu použije cacheované přihlašovací údaje.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
Vygenerování náhodného čísla produktu tady zajistí, že tento vzorek můžete spustit několikrát.
Vytvořte řetězec příkazu 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
Další kroky
Použijte tyto články k dalšímu budování:
- Connection strings pro přizpůsobení vzorku pro lokální SQL Server, Azure SQL, kontejnery a pojmenované instance.
- Správa spojení pro použití správců kontextu, poolování a nastavení připojení.
- Řešení problémů s autentizací, certifikáty a připojením.