Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In dieser Schnellstartanleitung verwenden Sie uv, um Projektabhängigkeiten und Umgebungen für ein Python-Skript zu verwalten, das eine Verbindung zu einer von Ihnen erstellten und mit Beispieldaten geladenen Datenbank herstellt. Sie verwenden den mssql-python Treiber für Python, um eine Verbindung mit Ihrer Datenbank herzustellen und grundlegende Vorgänge auszuführen, z. B. Lesen und Schreiben von Daten.
Der mssql-python Treiber erfordert keine externen Abhängigkeiten von Windows-Computern. Der Treiber installiert alles, was er mit einer einzigen pip Installation benötigt, sodass Sie die neueste Version des Treibers für neue Skripts verwenden können, ohne andere Skripts zu unterbrechen, die Sie nicht zum Upgrade und Test benötigen.
mssql-python-Dokumentation | mssql-python-Quellcode | Paket (PyPI) | Uv
Voraussetzungen
Python 3.10 oder höher
Wenn Sie noch nicht über Python verfügen, installieren Sie den Python-Runtime - und Pip-Paket-Manager aus python.org.
Möchten Sie Ihre eigene Umgebung nicht verwenden? Befolgen Sie die Anweisungen unter Container- und lokale Entwicklung, um einen reproduzierbaren Devcontainer oder eine GitHub Codespaces-Umgebung zu erstellen.
Visual Studio Code mit den folgenden Erweiterungen:
Azure Command-Line Interface (CLI) für die kennwortlose Authentifizierung unter macOS und Linux.
Wenn Sie
uvnoch nicht haben, befolgen Sie die Installationsanleitung.Eine Datenbank auf SQL Server, Azure SQL-Datenbank oder SQL-Datenbank in Fabric mit dem
AdventureWorks2025Beispielschema und einer gültigen Verbindungszeichenfolge.
Installieren Sie die einmaligen betriebsystem-spezifischen Voraussetzungen. Windows-Nutzer können diesen Schritt überspringen. Für vollständige Plattformdetails siehe Install mssql-python.
Erstellen einer SQL-Datenbank
Erstellen oder verbinden Sie sich mit einer SQL-Datenbank auf einer der folgenden Plattformen:
Erstellen Sie das Projekt, und führen Sie den Code aus.
- Erstellen eines neuen Projekts
- Hinzufügen von Abhängigkeiten
- Starten von Visual Studio Code
- Pyproject.toml aktualisieren
- Aktualisieren von main.py
- Speichern der Verbindungszeichenfolge
- Verwenden Sie 'uv run', um das Skript auszuführen
Erstellen eines neuen Projekts
Öffnen Sie eine Eingabeaufforderung in Ihrem Entwicklungsverzeichnis. Wenn du keines hast, erstelle ein neues Verzeichnis, wie zum Beispiel
pythonoderscripts. Vermeide Ordner auf deinem OneDrive, da Synchronisation die Verwaltung deiner virtuellen Umgebung beeinträchtigen kann.Erstellen Sie ein neues Projekt mit
uv.uv init mssql-python-repeatable-qs cd mssql-python-repeatable-qs
Hinzufügen von Abhängigkeiten
Im selben Verzeichnis installieren Sie die Pakete mssql-python, python-dotenv und rich.
uv add mssql-python python-dotenv rich
Starten Sie Visual Studio Code.
Führen Sie im selben Verzeichnis den folgenden Befehl aus.
code .
Pyproject.toml aktualisieren
Das pyproject.toml enthält die Metadaten für Ihr Projekt. Öffnen Sie die Datei in Ihrem bevorzugten Editor.
Überprüfen Sie den Inhalt der Datei. Es sollte mit diesem Beispiel vergleichbar sein. Beachten Sie die Python-Version und die Abhängigkeit; verwenden Sie für
mssql-python>=, um eine Mindestversion festzulegen. Wenn Sie eine genaue Version bevorzugen, ändern Sie die>=Vorversionsnummer in==. Die aufgelösten Versionen jedes Pakets werden im uv.lock gespeichert. Die Lockfile stellt sicher, dass Entwickler, die am Projekt arbeiten, konsistente Paketversionen verwenden. Außerdem wird sichergestellt, dass derselbe Satz von Paketversionen beim Verteilen des Pakets an Endbenutzer verwendet wird. Speichern Sie sowohlpyproject.tomlals auchuv.lock, überprüfen Sie Änderungen an der Lockfile in Pull-Anfragen und führen Sie in CI einen von Ihrer Organisation genehmigten Abhängigkeitenscanner aus. Bearbeiten Sie dieuv.lockDatei nicht direkt.[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", ]Aktualisieren Sie die Beschreibung so, dass sie aussagekräftiger ist.
description = "Connects to a SQL database using mssql-python"Speichern und schließen Sie die Datei.
Aktualisieren von main.py
Öffnen Sie die Datei mit dem Namen
main.py. Es sollte mit diesem Beispiel vergleichbar sein.def main(): print("Hello from mssql-python-repeatable-qs!") if __name__ == "__main__": main()Am oberen Rand der Datei fügen Sie die folgenden Importe vor die Zeile mit
def main()hinzu.Tipp
Wenn Visual Studio Code Probleme beim Beheben von Paketen hat, müssen Sie den Interpreter aktualisieren, um die virtuelle Umgebung zu verwenden.
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 sleepFügen Sie zwischen den Importen und der Zeile mit
def main()dem folgenden Code hinzu.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)Fügen Sie zwischen den Importen und
def get_results(sleep_time: int = 0) -> None:diesen Code hinzu._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 cursorSuchen Sie diesen Code.
def main(): print("Hello from mssql-python-repeatable-qs!")Ersetzen Sie ihn durch diesen 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()Speichern Sie und schließen Sie
main.py.
Speichern der Verbindungszeichenfolge
Öffnen Sie die
.gitignoreDatei, und fügen Sie einen Ausschluss für Dateien hinzu.env. Ihre Datei sollte mit diesem Beispiel vergleichbar sein. Achten Sie darauf, sie zu speichern und zu schließen, wenn Sie fertig sind.# Python-generated files __pycache__/ *.py[oc] build/ dist/ wheels/ *.egg-info # Virtual environments .venv # Connection strings and secrets .envErstellen Sie im aktuellen Verzeichnis eine neue Datei mit dem Namen
.env.Fügen Sie in der
.envDatei einen Eintrag für die Verbindungszeichenfolge mit dem NamenSQL_CONNECTION_STRINGhinzu. Ersetzen Sie das Beispiel hier durch ihren tatsächlichen Verbindungszeichenfolgenwert.SQL_CONNECTION_STRING="Server=<server_name>;Database=<database_name>;Encrypt=yes;TrustServerCertificate=no;Authentication=ActiveDirectoryInteractive"Important
Halte
.envlokal und aus der Versionsverwaltung heraus. Für CI- und bereitgestellte Umgebungen injizieren Sie die Verbindungszeichenfolge oder deren Komponentengeheimnisse aus Ihrem Plattform-Geheimspeicher, anstatt zwischen Rechnern zu kopieren.env.Tipp
Die hier verwendete Verbindungszeichenfolge hängt weitgehend vom Typ der SQL-Datenbank ab, mit der Sie eine Verbindung herstellen. Wenn Sie eine Verbindung mit einer Azure SQL-Datenbank oder einer SQL-Datenbank in Fabric herstellen, verwenden Sie die ODBC-Verbindungszeichenfolge auf der Registerkarte "Verbindungszeichenfolgen". Möglicherweise müssen Sie den Authentifizierungstyp je nach Szenario anpassen. Weitere Informationen zu Verbindungszeichenfolgen und deren Syntax finden Sie in der Referenz zur Verbindungszeichenfolgensyntax.
Verwenden Sie "uv run", um das Skript auszuführen.
Tipp
Unter macOS funktionieren sowohl ActiveDirectoryInteractive als auch ActiveDirectoryDefault für die Microsoft Entra-Authentifizierung.
ActiveDirectoryInteractive fordert Sie auf, sich jedes Mal anzumelden, wenn Sie das Skript ausführen. Um wiederholte Anmeldeaufforderungen zu vermeiden, melden Sie sich einmal über die Azure CLI an, indem Sie az login ausführen, und verwenden Sie dann ActiveDirectoryDefault, das die zwischengespeicherten Anmeldeinformationen wiederverwendet.
Führen Sie im Terminalfenster vor oder in einem neuen Terminalfenster, das im selben Verzeichnis geöffnet ist, den folgenden Befehl aus.
uv run main.pyJetzt führen wir es erneut aus, aber langsamer, um beide Statusupdates anzeigen zu können.
uv run main.py --sleep-time 5Dies ist die erwartete Ausgabe, wenn das Skript abgeschlossen ist.
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 │ └─────────────┴────────────────────────────────┴─────────────┘Um Ihr Skript auf einen anderen Rechner zu übertragen, kopieren Sie die Projektdateien, einschließlich
pyproject.tomlunduv.lock, aber nicht den.venvOrdner oder eine lokale.envDatei. Rekonstruiere die virtuelle Umgebung beim ersten Durchlauf und liefere Geheimnisse über die Zielumgebung.
Nächste Schritte
Nutzen Sie diese Artikel, um weiter aufzubauen:
- Erstellen Sie Verbindungsstrings, um Verbindungen für verschiedene SQL-Datenbanktypen und Authentifizierungsmethoden zu konfigurieren.
- Abfragen ausführen , um mehr über Abfragemuster, parametrisierte Abfragen und Ergebnisbehandlung zu lernen.
- Verbindungsverwaltung , um Kontextmanager, Pooling und Verbindungseinstellungen zu verwenden.