Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In deze quickstart gebruikt uv u voor het beheren van projectafhankelijkheden en -omgevingen voor Python-scripts die verbinding maken met een database die u hebt gemaakt en geladen met voorbeeldgegevens. U gebruikt het mssql-python stuurprogramma voor Python om verbinding te maken met uw database en basisbewerkingen uit te voeren, zoals het lezen en schrijven van gegevens.
Het mssql-python stuurprogramma vereist geen externe afhankelijkheden op Windows-computers. Het stuurprogramma installeert alles wat het nodig heeft met één pip installatie, zodat u de nieuwste versie van het stuurprogramma voor nieuwe scripts kunt gebruiken zonder dat andere scripts die u niet hoeft te upgraden en te testen, worden onderbroken.
documentatie | mssql-python-broncode | Pakket (PyPi) | Uv
Vereiste voorwaarden
Python 3
Als u Python nog niet hebt, installeert u de Python-runtime en PyPI-pakketbeheer (Python Package Index) vanuit python.org.
Wilt u liever geen gebruik maken van uw eigen omgeving? Open als devcontainer met behulp van GitHub Codespaces.
Visual Studio Code met de volgende extensies:
Als u
uvnog niet hebt, installeert uuvdoor de instructies uit https://docs.astral.sh/uv/getting-started/installation/ te volgen.Een database op SQL Server, Azure SQL Database of SQL Database in Fabric met het
AdventureWorks2025voorbeeldschema en een geldige verbindingsreeks.Installeer eenmalige vereisten voor het besturingssysteem.
Een SQL-database maken
Voor deze quickstart is het AdventureWorks2025 Lightweight-schema vereist, in Microsoft SQL Server, SQL Database in Fabric of Azure SQL Database.
Het project maken en de code uitvoeren
- Een nieuw project maken
- Afhankelijkheden toevoegen
- Visual Studio Code starten
- Pyproject.toml bijwerken
- Main.py bijwerken
- De verbindingsreeks opslaan
- Uv-uitvoering gebruiken om het script uit te voeren
Een nieuw project maken
Open een opdrachtprompt in uw ontwikkelingsmap. Als u geen map hebt, maakt u een nieuwe map met de naam
python,scriptsenzovoort. Vermijd mappen in uw OneDrive, dan kan de synchronisatie het beheer van uw virtuele omgeving verstoren.Maak een nieuw project met
uv.uv init mssql-python-repeatable-qs cd mssql-python-repeatable-qs
Afhankelijkheden toevoegen
Installeer in dezelfde map de mssql-python, python-dotenven rich pakketten.
uv add mssql-python python-dotenv rich
Visual Studio Code starten
Voer in dezelfde map de volgende opdracht uit.
code .
Pyproject.toml bijwerken
Het pyproject.toml bevat de metagegevens voor uw project. Open het bestand in uw favoriete editor.
Controleer de inhoud van het bestand. Deze moet vergelijkbaar zijn met dit voorbeeld. Noteer de Python-versie en -afhankelijkheid voor
mssql-pythongebruik>=om een minimale versie te definiëren. Als u de voorkeur geeft aan een exacte versie, wijzigt u de>=voor het versienummer in==. De opgeloste versies van elk pakket worden vervolgens opgeslagen in de uv.lock. Het lockfile zorgt ervoor dat ontwikkelaars die aan het project werken, consistente pakketversies gebruiken. Het zorgt er ook voor dat dezelfde set pakketversies wordt gebruikt bij het distribueren van uw pakket naar eindgebruikers. U moet hetuv.lockbestand niet bewerken.[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", ]Werk de beschrijving bij zodat deze meer beschrijvend is.
description = "Connects to a SQL database using mssql-python"Sla het bestand op en sluit het.
Main.py bijwerken
Open het bestand met de naam
main.py. Deze moet vergelijkbaar zijn met dit voorbeeld.def main(): print("Hello from mssql-python-repeatable-qs!") if __name__ == "__main__": main()Voeg boven aan het bestand de volgende importen toe boven de regel met
def main().Aanbeveling
Als Visual Studio Code problemen ondervindt bij het oplossen van pakketten, moet u de interpreter bijwerken om de virtuele omgeving te gebruiken.
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 sleepVoeg tussen de importbewerkingen en de regel met
def main()de volgende code toe.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)Voeg deze code toe tussen de imports en
def get_results(sleep_time: int = 0) -> None:._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 cursorZoek deze code.
def main(): print("Hello from test!")Vervang deze door deze code.
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()Opslaan en sluiten
main.py.
De verbindingsreeks opslaan
Open het
.gitignorebestand en voeg een uitsluiting toe voor.envbestanden. Het bestand moet er ongeveer uitzien als in dit voorbeeld. Zorg ervoor dat u deze opslaat en sluit wanneer u klaar bent.# Python-generated files __pycache__/ *.py[oc] build/ dist/ wheels/ *.egg-info # Virtual environments .venv # Connection strings and secrets .envMaak in de huidige map een nieuw bestand met de naam
.env.Voeg in het
.envbestand een vermelding toe voor de verbindingsreeks met de naamSQL_CONNECTION_STRING. Vervang het voorbeeld hier door de werkelijke verbindingsreekswaarde.SQL_CONNECTION_STRING="Server=<server_name>;Database={<database_name>};Encrypt=yes;TrustServerCertificate=no;Authentication=ActiveDirectoryInteractive"Aanbeveling
De hier gebruikte verbindingsreeks is grotendeels afhankelijk van het type SQL-database waarmee u verbinding maakt. Als u verbinding maakt met een Azure SQL Database of een SQL-database in Fabric, gebruikt u de ODBC-verbindingsreeks op het tabblad Verbindingsreeksen. Mogelijk moet u het verificatietype aanpassen, afhankelijk van uw scenario. Zie de naslaginformatie over de syntaxis van de verbindingsreeks voor meer informatie over verbindingsreeksen en de bijbehorende syntaxis.
Gebruik uv run om het script uit te voeren
Aanbeveling
Om Microsoft Entra-verificatie op macOS te gebruiken, moet u inloggen via de Azure Repos-extensie in Visual Studio Code of door az login uit te voeren via de Azure Command-Line Interface (CLI).
Voer in het terminalvenster van vóór, of een nieuw terminalvenster dat is geopend in dezelfde map, de volgende opdracht uit.
uv run main.pyNu gaan we het opnieuw uitvoeren, maar langzamer zodat we beide statusupdates kunnen zien.
uv run main.py --sleep-time 5Dit is de verwachte uitvoer wanneer het script is voltooid.
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 │ └─────────────┴────────────────────────────────┴─────────────┘Als u uw script op een andere computer wilt implementeren, kopieert u alle bestanden, met uitzondering van de
.venvmap naar de andere computer. De virtuele omgeving wordt opnieuw gemaakt met de eerste uitvoering.
Volgende stap
Ga naar de GitHub-opslagplaats van het mssql-python stuurprogramma voor meer voorbeelden, om ideeën bij te dragen of problemen te rapporteren.