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 slouží uv ke správě závislostí a prostředí projektu pro skript Pythonu, který se připojuje k databázi, kterou jste vytvořili a načetli s ukázkovými daty. Vousáváte ovladač Pythonu mssql-python k připojení k vaší 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.
Dokumentace mssql-python | mssql-python zdrojový kód | Balíček (PyPi) | uv
Požadavky
Python 3
Pokud ještě nemáte Python, nainstalujte z python.org správce balíčků Python runtime a Python Package Index (PyPI).
Raději nepoužíváte vlastní prostředí? Otevřete jako devcontainer pomocí GitHub Codespaces.
Visual Studio Code s následujícími rozšířeními:
Rozšíření Python pro Visual Studio Code
Pokud ještě
uvnemáte, nainstalujteuvpodle pokynů od https://docs.astral.sh/uv/getting-started/installation/.Databáze na SQL serveru, Azure SQL Database nebo SQL databázi ve Fabric, obsahující ukázkové
AdventureWorks2025schéma a platný připojovací řetězec.Nainstalujte požadavky specifické pro jednorázový operační systém.
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.
Vytvoření projektu a spuštění kódu
- Vytvoření nového projektu
- Přidání závislostí
- Spuštění editoru Visual Studio Code
- Aktualizace pyproject.toml
- Aktualizace main.py
- Ulož připojovací řetězec
- Použij uv run pro spuštění skriptu
Vytvoření nového projektu
Otevřete příkazový řádek ve vývojovém adresáři. Pokud ho nemáte, vytvořte nový adresář s názvem
python,scriptsatd. Vyhněte se složkám na OneDrivu, synchronizace může narušit správu vašeho virtuálního prostředí.Vytvořte nový projekt pomocí
uvpříkazu .uv init mssql-python-repeatable-qs cd mssql-python-repeatable-qs
Přidejte závislosti
Ve stejném adresáři nainstalujte balíčky mssql-python, python-dotenv a rich.
uv add mssql-python python-dotenv rich
Spusťte Visual Studio Code
Ve stejném adresáři spusťte následující příkaz.
code .
Aktualizace pyproject.toml
Soubor pyproject.toml obsahuje metadata pro váš projekt. Otevřete soubor v oblíbeném editoru.
Zkontrolujte obsah souboru. Měl by se podobat tomuto příkladu. Všimněte si verze Pythonu a závislosti pro
mssql-python, které používá>=k definování minimální verze. Pokud dáváte přednost přesné verzi, změňte>=před číslem verze na==. Vyřešené verze každého balíčku jsou pak uloženy v uv.lock. Soubor lockfile zajišťuje, aby vývojáři pracující na projektu používali konzistentní verze balíčků. Také zajišťuje, aby se při distribuci balíčku koncovým uživatelům používala úplně stejná sada verzí balíčků. Souboruv.lockbyste neměli upravovat.[project] name = "mssql-python-repeatable-qs" version = "0.1.0" description = "Add your description here" readme = "README.md" requires-python = ">=3.11" dependencies = [ "mssql-python>=0.10.0", "python-dotenv>=1.1.1", "rich>=14.1.0", ]Aktualizujte popis, aby byl popisnější.
description = "Connects to a SQL database using mssql-python"Uložte a zavřete soubor.
Aktualizace main.py
Otevřete soubor s názvem
main.py. Měl by se podobat tomuto příkladu.def main(): print("Hello from mssql-python-repeatable-qs!") if __name__ == "__main__": main()V horní části souboru přidejte následující importy nad řádek s
def main().Návod
Pokud má Visual Studio Code potíže s řešením balíčků, musíte interpreta aktualizovat tak, aby používal virtuální prostředí.
from os import getenv from dotenv import load_dotenv from mssql_python import connect, Connection, Cursor from rich.console import Console from rich.progress import Progress, SpinnerColumn, TextColumn from rich.table import Table from argparse import ArgumentParser from time import sleepMezi importy a řádek s
def main(), přidejte následující kód.def get_results(sleep_time: int = 0) -> None: with Progress( SpinnerColumn(), TextColumn("[progress.description]{task.description}"), transient=True, ) as progress: task = progress.add_task( description="Connecting to SQL...") cursor = query_sql() # Simulate a slow connection for demo purposes sleep(sleep_time) progress.update(task, description="Formatting results...") table = Table(title="Orders by Customer") # https://rich.readthedocs.io/en/stable/appendix/colors.html table.add_column("Customer ID", style="bright_blue", justify="center") table.add_column("Company Name", style="bright_white", justify="left") table.add_column("Order Count", style="bold green", justify="right") records = cursor.fetchall() for r in records: table.add_row(f"{r.CustomerID}", f"{r.CompanyName}", f"{r.OrderCount}") if cursor: cursor.close() # Simulate a slow connection for demo purposes sleep(sleep_time) progress.stop() Console().print(table)Mezi importy a
def get_results(sleep_time: int = 0) -> None:přidejte tento kód._connection = None def get_connection() -> Connection: global _connection if not _connection: load_dotenv() _connection = connect(getenv("SQL_CONNECTION_STRING")) # type: ignore return _connection def query_sql() -> Cursor: 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; """ conn = get_connection() cursor = conn.cursor() cursor.execute(SQL_QUERY) return cursorVyhledejte tento kód.
def main(): print("Hello from test!")Nahraďte ho tímto kódem.
def main() -> None: parser = ArgumentParser() parser.add_argument("--sleep-time", type=int, default=0, help="Time to sleep in seconds to simulate slow connection") args = parser.parse_args() if args.sleep_time > 0: get_results(args.sleep_time) else: get_results() if _connection: _connection.close()Uložte a zavřete
main.py.
Uložte řetězec připojení
.gitignoreOtevřete soubor a přidejte vyloučení souborů.env. Soubor by měl být podobný tomuto příkladu. Až budete hotovi, nezapomeňte ho uložit a zavřít.# Python-generated files __pycache__/ *.py[oc] build/ dist/ wheels/ *.egg-info # Virtual environments .venv # Connection strings and secrets .envV 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. 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 k SQL databázi ve Fabric, použijte připojovací řetězec ODBC z karty Připojovací řetězce. Možná budete muset upravit typ ověřování 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.
Použijte 'uv run' ke spuštění skriptu
Návod
Pokud chcete používat ověřování Microsoft Entra v systému macOS, musíte být přihlášeni prostřednictvím rozšíření Azure Repos v editoru Visual Studio Code nebo spuštěním az login prostřednictvím rozhraní Azure Command-Line Interface (CLI).
V okně terminálu před nebo v novém okně terminálu, které se otevře ve stejném adresáři, spusťte následující příkaz.
uv run main.pyTeď ho znovu spustíme, ale pomaleji, abychom viděli obě aktualizace stavu.
uv run main.py --sleep-time 5Tady je očekávaný výstup po dokončení skriptu.
Orders by Customer ┏━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┓ ┃ Customer ID ┃ Company Name ┃ Order Count ┃ ┡━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━┩ │ 29485 │ Professional Sales and Service │ 1 │ │ 29531 │ Remarkable Bike Store │ 1 │ │ 29546 │ Bulk Discount Store │ 1 │ │ 29568 │ Coalition Bike Company │ 1 │ │ 29584 │ Futuristic Bikes │ 1 │ └─────────────┴────────────────────────────────┴─────────────┘Pokud chcete skript nasadit do jiného počítače, zkopírujte všechny soubory s výjimkou
.venvsložky na druhý počítač. Virtuální prostředí se znovu vytvoří při prvním spuštění.
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.