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 Streamlit u om snel een rapport te maken, zodat u snel gebruikersfeedback kunt verzamelen om ervoor te zorgen dat u op het juiste spoor bent. U gebruikt het mssql-python stuurprogramma voor Python om verbinding te maken met uw database en de gegevens te lezen die in uw rapport zijn geladen.
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 een devcontainer met 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 rapid-prototyping-qs cd rapid-prototyping-qs
Afhankelijkheden toevoegen
Installeer in dezelfde map de mssql-python, streamliten python-dotenv pakketten.
uv add mssql-python python-dotenv streamlit
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.
Werk de beschrijving bij zodat deze meer beschrijvend is.
description = "A quick example of rapid prototyping using the mssql-python driver and Streamlit."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 rapid-protyping-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 import pandas as pd import streamlit as stVoeg tussen de importbewerkingen en de regel met
def main()de volgende code toe.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')Voeg deze code toe tussen de imports en
def page_load() -> None:._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 dataZoek deze code.
def main(): print("Hello from rapid-protyping-qs!")Vervang deze door deze code.
def main() -> None: page_load() 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 streamlit run main.pyUw rapport wordt geopend op een nieuw tabblad in uw webbrowser.
Probeer uw rapport om te zien hoe het werkt. Als u iets wijzigt, slaat u
main.pyop en gebruikt u de optie voor opnieuw laden in de rechterbovenhoek van het browservenster.Als u uw prototype wilt delen, kopieert u alle bestanden, met uitzondering van de
.venvmap naar de andere computer. De.venvmap wordt opnieuw gemaakt bij de eerste keer uitvoeren.
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.