Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Dans ce guide de démarrage rapide, vous utilisez uv pour gérer les dépendances et les environnements du projet pour un script Python qui se connecte à une base de données que vous avez créée et alimentée avec des exemples de données. Vous utilisez le mssql-python pilote Python pour vous connecter à votre base de données et effectuer des opérations basiques, comme lire et écrire des données.
Le mssql-python pilote ne nécessite aucune dépendance externe sur les machines Windows. Le pilote installe tout ce dont il a besoin avec une seule pip installation, ce qui vous permet d’utiliser la dernière version du pilote pour les nouveaux scripts sans interrompre d’autres scripts que vous n’avez pas le temps de mettre à niveau et de tester.
documentation mssql-python | code source mssql-python | Package (PyPI) | uv
Prerequisites
Python 3.10 ou version ultérieure.
Si vous n’avez pas encore Python, installez le runtime Python et le gestionnaire de package pip à partir de python.org.
Ne souhaitez pas utiliser votre propre environnement ? Suivez Container et le développement local pour créer un devcontainer reproductible ou un environnement GitHub Codespaces.
Visual Studio Code avec les extensions suivantes :
Azure Command-Line Interface (CLI) pour l’authentification sans mot de passe sur macOS et Linux.
Si vous n’avez
uvpas encore, suivez les instructions d’installation.Base de données sur SQL Server, Azure SQL Database ou base de données SQL dans Fabric avec l’exemple
AdventureWorks2025de schéma et une chaîne de connexion valide.
Prérequis pour installer le système d’exploitation
Installez les prérequis ponctuels spécifiques au système d'exploitation. Les utilisateurs Windows peuvent sauter cette étape. Pour tous les détails sur la plateforme, voir Installer mssql-python.
Créer une base de données SQL
Créer ou connecter une base de données SQL sur l’une des plateformes suivantes :
Créer le projet et exécuter le code
- Créer un projet
- Ajouter des dépendances
- Lancer Visual Studio Code
- Mettre à jour pyproject.toml
- Mettre à jour main.py
- Enregistrer la chaîne de connexion
- Utilisez uv run pour exécuter le script
Créer un projet
Ouvrez une invite de commandes dans votre répertoire de développement. Si vous n’en avez pas, créez un nouveau répertoire, tel que
pythonouscripts. Évitez les dossiers sur votre OneDrive, car la synchronisation peut interférer avec la gestion de votre environnement virtuel.Créez un projet avec
uv.uv init mssql-python-repeatable-qs cd mssql-python-repeatable-qs
Ajouter des dépendances
Dans le même répertoire, installez les packages mssql-python, python-dotenv et rich.
uv add mssql-python python-dotenv rich
Lancer Visual Studio Code
Dans le même répertoire, exécutez la commande suivante.
code .
Mettre à jour pyproject.toml
Ouvrez le fichier
pyproject.tomldans votre éditeur. Ce fichier contient les métadonnées de votre projet.Passez en revue le contenu du fichier. Il doit être similaire à cet exemple. Indiquez la version de Python et la dépendance pour
mssql-python; utilisez>=pour définir une version minimale. Si vous préférez une version exacte, changez le>=avant le numéro de version en==. Les versions retenues de chaque paquet sont enregistrées dans le uv.lock. Le fichier verrouillé garantit que les développeurs travaillant sur le projet utilisent des versions cohérentes des paquets. Il garantit également que le même ensemble de versions de package est utilisé lors de la distribution de votre package aux utilisateurs finaux. Validez à la foispyproject.tomletuv.lock, vérifiez les modifications de fichiers de verrouillage dans les demandes de tirage (pull requests) et exécutez un scanneur de dépendances approuvé par l’organisation dans CI. Ne modifie pas directement leuv.lockfichier.[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>=1.16.0", "python-dotenv>=1.1.1", "rich>=14.1.0", ]Mettez à jour la valeur
description.description = "Connects to a SQL database using mssql-python"Enregistrez et fermez le fichier.
Mettre à jour main.py
Ouvrez le fichier nommé
main.py. Il doit être similaire à cet exemple.def main(): print("Hello from mssql-python-repeatable-qs!") if __name__ == "__main__": main()En haut du fichier, ajoutez les importations suivantes avant la ligne avec
def main().Conseil / Astuce
Si Visual Studio Code rencontre des difficultés pour résoudre les packages, vous devez mettre à jour l’interpréteur pour utiliser l’environnement virtuel.
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 sleepEntre les importations et la ligne avec
def main(), ajoutez le code suivant.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)Entre les importations et
def get_results(sleep_time: int = 0) -> None:, ajoutez ce code._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 cursorRecherchez ce code.
def main(): print("Hello from mssql-python-repeatable-qs!")Remplacez-le par ce 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()Enregistrez et fermez
main.py.
Enregistrer la chaîne de connexion
Ouvrez le
.gitignorefichier et ajoutez une exclusion pour.envles fichiers. Votre fichier devrait être similaire à l’exemple suivant.# Python-generated files __pycache__/ *.py[oc] build/ dist/ wheels/ *.egg-info # Virtual environments .venv # Connection strings and secrets .envEnregistrez et fermez
.gitignore.Dans le répertoire actif, créez un fichier nommé
.env.Dans le
.envfichier, ajoutez une entrée pour votre chaîne de connexion nomméeSQL_CONNECTION_STRING. Remplacez les espaces réservés par vos valeurs réelles.SQL_CONNECTION_STRING="Server=<server>;Database=<database>;Encrypt=yes;TrustServerCertificate=no;Authentication=ActiveDirectoryInteractive"Important
Gardez
.enven local et hors de la gestion de version. Pour les environnements CI et déployés, injectez la chaîne de connexion ou les clés secrètes des composants depuis le magasin des secrets de votre plateforme au lieu de copier.envd’une machine à l’autre.La chaîne de connexion dépend du type de base de données SQL à laquelle vous vous connectez. Pour Azure SQL Database ou SQL Database dans Fabric, utilisez la chaîne de connexion ODBC depuis l’onglet des chaînes de connexion, et ajustez le type d’authentification pour votre scénario. Pour plus d’informations sur la syntaxe des chaîne de connexion, voir Chaînes de connexion pour mssql-python.
Conseil / Astuce
Sur macOS, les deux
ActiveDirectoryInteractiveetActiveDirectoryDefaultfonctionnent pour l’authentification Microsoft Entra.ActiveDirectoryInteractivevous invite à vous connecter chaque fois que vous exécutez le script. Pour éviter les invites de connexion répétées, connectez-vous une fois avec la commande Azure CLIaz login, et utilisezActiveDirectoryDefault.ActiveDirectoryDefaultRéutilise les informations d’identification mises en cache.
Utilisez uv run pour exécuter le script
Dans la fenêtre de terminal à partir de l’avant, ou une nouvelle fenêtre de terminal ouverte au même répertoire, exécutez la commande suivante.
uv run main.pyRelance le script avec un délai pour voir les deux mises à jour d’état.
uv run main.py --sleep-time 5Voici la sortie attendue lorsque le script est terminé.
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 │ └─────────────┴────────────────────────────────┴─────────────┘Pour déployer votre script sur une autre machine, copiez les fichiers du projet, y compris
pyproject.tomletuv.lock, mais pas le.venvdossier ni aucun fichier local.env. Recréer l’environnement virtuel dès la première exécution et fournir les secrets via l’environnement cible.