Partager via


Démarrage rapide : Se connecter avec le pilote mssql-python pour Python

Dans ce guide de démarrage rapide, vous connectez un script Python à une base de données que vous avez créée et chargée avec des exemples de données. Vous utilisez le mssql-python pilote pour Python pour vous connecter à votre base de données et effectuer des opérations de base, telles que la lecture et l’écriture de 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) | Visual Studio Code

Conditions préalables

  • Python 3

    • Si vous n’avez pas encore Python, installez le runtime Python et le gestionnaire de package Python Package Index (PyPI) à partir de python.org.

    • Si vous préférez ne pas utiliser votre propre environnement, ouvrez en tant que devcontainer à l’aide de GitHub Codespaces.

  • (Facultatif) Interface Azure en ligne de commande (CLI)

  • Base de données sur SQL Server, Azure SQL Database ou base de données SQL dans Fabric avec l’exemple AdventureWorks2025 de schéma et une chaîne de connexion valide.

Configuration

Suivez ces étapes pour configurer votre environnement de développement pour développer une application à l’aide du mssql-python pilote Python.

Remarque

Ce pilote utilise le protocole TDS (Tabular Data Stream), qui est activé par défaut dans SQL Server, sql Database dans Fabric et Azure SQL Database. Aucune configuration supplémentaire n’est nécessaire.

Installer le package mssql-python

Obtenez le package mssql-python à partir de PyPI.

  1. Ouvrez une invite de commandes dans un répertoire de fichiers vide.

  2. Installez le package mssql-python.

    pip install mssql-python
    

Installer le package python-dotenv

Obtenez le python-dotenv à partir de PyPI.

  1. Dans le même répertoire, installez le python-dotenv package.

    pip install python-dotenv
    

Vérifiez les packages installés

Vous pouvez utiliser l’outil en ligne de commande PyPI pour vérifier que les packages prévus sont installés.

  1. Vérifiez la liste des packages installés avec pip list.

    pip list
    

Créer une base de données SQL

Ce guide de démarrage rapide nécessite le schéma Léger AdventureWorks2025, sur Microsoft SQL Server, une base de données SQL dans Fabric ou une base de données Azure SQL.

Exécuter le code

Créer un nouveau fichier

  1. Créez un nouveau fichier appelé app.py.

  2. Ajoutez une description docstring du module.

    """
    Connects to a SQL database using mssql-python
    """
    
  3. Importer des packages, y compris mssql-python.

    from os import getenv
    from dotenv import load_dotenv
    from mssql_python import connect
    
  4. Utilisez la fonction mssql-python.connect pour vous connecter à une base de données SQL.

    load_dotenv()
    conn = connect(getenv("SQL_CONNECTION_STRING"))
    
  5. Dans le répertoire actif, créez un fichier nommé .env.

  6. Dans le .env fichier, ajoutez une entrée pour votre chaîne de connexion nommée SQL_CONNECTION_STRING. Remplacez l’exemple ici par votre valeur de chaîne de connexion réelle.

    SQL_CONNECTION_STRING="Server=<server_name>;Database={<database_name>};Encrypt=yes;TrustServerCertificate=no;Authentication=ActiveDirectoryInteractive"
    

    Conseil / Astuce

    La chaîne de connexion utilisée ici dépend en grande partie du type de base de données SQL à laquelle vous vous connectez. Si vous vous connectez à une base de données Azure SQL ou à une base de données SQL dans Fabric, utilisez la chaîne de connexion ODBC à partir de l’onglet chaînes de connexion. Vous devrez peut-être ajuster le type d’authentification en fonction de votre scénario. Pour plus d’informations sur les chaînes de connexion et leur syntaxe, consultez la référence de la syntaxe des chaînes de connexion.

Exécuter une requête

Utilisez une chaîne de requête SQL pour exécuter une requête et analyser les résultats.

  1. Créez une variable pour la chaîne de requête 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;
    """
    
  2. Utilisez cursor.execute pour récupérer un jeu de résultats à partir d’une requête sur la base de données.

    cursor = conn.cursor()
    cursor.execute(SQL_QUERY)
    

    Remarque

    Cette fonction accepte n'importe quelle requête et renvoie un jeu de résultats qui peut être itéré à l'aide de cursor.fetchone().

  3. Utilisez cursor.fetchall avec une boucle foreach pour obtenir tous les enregistrements de la base de données. Ensuite, imprimez les enregistrements.

    records = cursor.fetchall()
    for r in records:
      print(f"{r.CustomerID}\t{r.OrderCount}\t{r.CompanyName}")
    
  4. Enregistrez le app.py fichier.

Conseil / Astuce

Pour utiliser l’authentification Microsoft Entra dans macOS, vous devez être connecté en exécutant l’interface az loginAzure Command-Line (CLI).

  1. Ouvrez un terminal et testez l’application.

    python app.py
    

    Voici la sortie attendue.

    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
    

Insérer une ligne en tant que transaction

Exécutez une instruction INSERT en toute sécurité et transmettez des paramètres. Le passage de paramètres en tant que valeurs protège votre application contre les attaques par injection SQL .

  1. Ajoutez une instruction d'importation pour randrange depuis la bibliothèque random en haut de app.py.

    from random import randrange
    
  2. À la fin de app.py, ajoutez du code pour générer un numéro de produit aléatoire.

    productNumber = randrange(1000)
    

    Conseil / Astuce

    Générer un numéro de produit aléatoire ici vous garantit de pouvoir exécuter cet exemple plusieurs fois.

  3. Créez une chaîne d’instruction SQL.

    SQL_STATEMENT = """
    INSERT SalesLT.Product (
    Name,
    ProductNumber,
    StandardCost,
    ListPrice,
    SellStartDate
    ) OUTPUT INSERTED.ProductID
    VALUES (?, ?, ?, ?, CURRENT_TIMESTAMP)
    """
    
  4. Exécutez l’instruction à l’aide de cursor.execute.

    cursor.execute(
       SQL_STATEMENT,
       (
          f'Example Product {productNumber}',
          f'EXAMPLE-{productNumber}',
          100,
          200
       )
    )
    
  5. Récupérez le résultat unique à l’aide de cursor.fetchone, imprimez l’identificateur unique du résultat, puis validez l’opération en tant que transaction à l’aide de connection.commit.

    result = cursor.fetchone()
    print(f"Inserted Product ID : {result['ProductID']}")
    conn.commit()
    

    Conseil / Astuce

    Si vous le souhaitez, vous pouvez utiliser connection.rollback pour restaurer la transaction.

  6. Fermez le curseur et la connexion à l’aide de cursor.close et connection.close.

    cursor.close()
    conn.close()
    
  7. Enregistrez le fichier et app.py à nouveau l’application.

    python app.py
    

    Voici la sortie attendue.

    Inserted Product ID : 1001
    

Étape suivante

Pour obtenir d’autres exemples, consultez le dépôt GitHub du mssql-python pilote pour contribuer à des idées ou signaler des problèmes.