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 nutzen Sie Streamlit, um schnell einen Bericht zu erstellen, sodass Sie Benutzerfeedback sammeln können, um sicherzustellen, dass Sie sich auf dem richtigen Weg befinden. Sie verwenden den Treiber mssql-python für Python, um eine Verbindung mit Ihrer Datenbank herzustellen und die Daten, die in Ihren Bericht geladen wurden, zu lesen.
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
Wenn Sie noch nicht über Python verfügen, installieren Sie den Python-Runtime- und Python Package Index (PyPI)-Paket-Manager aus python.org.
Möchten Sie lieber nicht Ihre eigene Umgebung verwenden? Öffnen Sie als Devcontainer mit GitHub Codespaces.
Visual Studio Code mit den folgenden Erweiterungen:
Wenn Sie
uvnoch nicht haben, installieren Sieuvgemäß den Anweisungen von https://docs.astral.sh/uv/getting-started/installation/.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.
Erstellen einer SQL-Datenbank
Für diese Schnellstartanleitung ist das AdventureWorks2025 Lightweight-Schema unter Microsoft SQL Server, SQL-Datenbank in Fabric oder Azure SQL-Datenbank erforderlich.
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 Sie kein Verzeichnis haben, erstellen Sie ein neues Verzeichnis namens
python,scriptsusw. Vermeiden Sie Ordner auf Ihrem OneDrive, die Synchronisierung kann die Verwaltung Ihrer virtuellen Umgebung beeinträchtigen.Erstellen Sie ein neues Projekt mit
uv.uv init rapid-prototyping-qs cd rapid-prototyping-qs
Hinzufügen von Abhängigkeiten
Im selben Verzeichnis installieren Sie die Pakete mssql-python, streamlit und python-dotenv.
uv add mssql-python python-dotenv streamlit
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.
Aktualisieren Sie die Beschreibung so, dass sie aussagekräftiger ist.
description = "A quick example of rapid prototyping using the mssql-python driver and Streamlit."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 rapid-protyping-qs!") if __name__ == "__main__": main()Fügen Sie oben in der Datei die folgenden Importe oberhalb der 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 import pandas as pd import streamlit as stFügen Sie zwischen den Importen und der Zeile mit
def main()dem folgenden Code hinzu.def page_load() -> None: st.set_page_config( page_title="View Data", page_icon=":bar_chart:", layout="wide", initial_sidebar_state="expanded" ) st.title("AdventureWorksLT Customer Order History") SQL_QUERY = """SELECT c.* FROM [SalesLT].[Customer] c inner join SalesLT.SalesOrderHeader soh on c.CustomerId = soh.CustomerId;""" df = load_data(SQL_QUERY) event = st.dataframe( df, width='stretch', hide_index=True, on_select="rerun", selection_mode="single-row" ) customer = event.selection.rows if len(customer) == 0: SQL_QUERY = """select soh.OrderDate, SUM(sod.OrderQty), SUM(sod.OrderQty * sod.UnitPrice) as spend, pc.Name as ProductCategory from SalesLT.SalesOrderDetail sod inner join SalesLt.SalesOrderHeader soh on sod. salesorderid = soh.salesorderid inner join SalesLt.Product p on sod.productid = p.productid inner join SalesLT.ProductCategory pc on p.ProductCategoryID = pc.ProductCategoryID GROUP BY soh.OrderDate, pc.Name ORDER BY soh.OrderDate, pc.Name;""" else: SQL_QUERY = f"""select soh.OrderDate, SUM(sod.OrderQty), SUM(sod.OrderQty * sod.UnitPrice) as spend, pc.Name as ProductCategory from SalesLT.SalesOrderDetail sod inner join SalesLt.SalesOrderHeader soh on sod. salesorderid = soh.salesorderid inner join SalesLt.Product p on sod.productid = p.productid inner join SalesLT.ProductCategory pc on p.ProductCategoryID = pc.ProductCategoryID where soh.CustomerID = {df.loc [customer, 'CustomerID'].values[0]} GROUP BY soh.OrderDate, pc.Name ORDER BY soh.OrderDate, pc.Name;""" st.write("Here's a summary of spend by product category over time:") st.bar_chart(load_data(SQL_QUERY).set_index('ProductCategory') ['spend'], use_container_width=True) if len(customer) > 0: st.write( f"Displaying orders for Customer ID: {df.loc[customer, 'CustomerID'].values[0]}") SQL_QUERY = f"""SELECT * FROM [SalesLT].[SalesOrderHeader] soh WHERE soh.CustomerID = {df.loc[customer, 'CustomerID'].values[0]};""" st.dataframe(load_data(SQL_QUERY), hide_index=True, width='stretch') SQL_QUERY = f"""SELECT sod.* FROM [SalesLT].[SalesOrderHeader] soh INNER JOIN SalesLT.SalesOrderDetail sod on soh.SalesOrderId = sod.SalesOrderId WHERE CustomerID = {df.loc[customer, 'CustomerID'].values[0]};""" st.dataframe(load_data(SQL_QUERY), hide_index=True, width='stretch')Fügen Sie zwischen den Importen und
def page_load() -> None:diesen Code hinzu._connection = None def get_connection() -> Connection: global _connection if not _connection: load_dotenv() _connection = connect(getenv("SQL_CONNECTION_STRING")) return _connection @st.cache_data def load_data(SQL_QUERY) -> pd.DataFrame: data = pd.read_sql_query(SQL_QUERY, get_connection()) return dataSuchen Sie diesen Code.
def main(): print("Hello from rapid-protyping-qs!")Ersetzen Sie ihn durch diesen Code.
def main() -> None: page_load() 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"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
Um die Microsoft Entra-Authentifizierung in macOS zu verwenden, müssen Sie entweder über die Azure Repos-Erweiterung in Visual Studio Code oder über az login die Azure Command-Line Interface (CLI) angemeldet sein.
Führen Sie im Terminalfenster vor oder in einem neuen Terminalfenster, das im selben Verzeichnis geöffnet ist, den folgenden Befehl aus.
uv run streamlit run main.pyIhr Bericht wird in ihrem Webbrowser auf einer neuen Registerkarte geöffnet.
Probieren Sie Ihren Bericht aus, um zu sehen, wie er funktioniert. Wenn Sie etwas ändern, speichern Sie
main.py, und verwenden Sie die Option "Neuladen" in der oberen rechten Ecke des Browserfensters.Um Ihren Prototyp freizugeben, kopieren Sie alle Dateien mit Ausnahme des
.venvOrdners auf den anderen Computer. Der.venvOrdner wird mit der ersten Ausführung neu erstellt.
Nächster Schritt
Besuchen Sie das mssql-python GitHub-Treiberrepository für weitere Beispiele, um Ideen beizutragen oder Probleme zu melden.