Merk
Tilgang til denne siden krever autorisasjon. Du kan prøve å logge på eller endre kataloger.
Tilgang til denne siden krever autorisasjon. Du kan prøve å endre kataloger.
I denne hurtigstarten bruker Streamlit du til raskt å opprette en rapport, slik at du raskt kan samle inn tilbakemeldinger fra brukere for å sikre at du er på rett spor. Du bruker driveren mssql-python for Python til å koble til SQL-databasen i Fabric og lese dataene som er lastet inn i rapporten.
Driveren mssql-python krever ingen eksterne avhengigheter på Windows-maskiner. Driveren installerer alt den trenger med en enkelt pip installasjon, slik at du kan bruke den nyeste versjonen av driveren for nye skript uten å bryte andre skript som du ikke har tid til å oppgradere og teste.
mssql-python-dokumentasjon | mssql-python kildekode | Pakke (PyPi) | UV
Forutsetning
Python 3
Hvis du ikke allerede har Python, installer Python-kjøretid og Python Package Index (PyPI)-pakkebehandling fra python.org.
Foretrekker du å ikke bruke ditt eget miljø? Åpne som en devcontainer ved hjelp av GitHub Codespaces.
Visual Studio Code med følgende utvidelser:
Hvis du ikke allerede har
uv, installeruvved å følge instruksjonene fra https://docs.astral.sh/uv/getting-started/installation/.Installer engangsoperativsystemspesifikke forutsetninger.
Opprett prosjektet og kjør koden
- Opprette et nytt prosjekt
- Legge til avhengigheter
- Start Visual Studio Code
- Oppdater pyproject.toml
- Oppdater main.py
- Lagre tilkoblingsstrengen
- Bruk uv run for å kjøre skriptet
Opprette et nytt prosjekt
Åpne en ledetekst i utviklingskatalogen. Hvis du ikke har en, opprett en ny katalog kalt
python,scripts, etc. Unngå mapper på OneDrive, synkroniseringen kan forstyrre administrasjonen av det virtuelle miljøet ditt.Opprett et nytt prosjekt med
uv.uv init rapid-prototyping-qs cd rapid-prototyping-qs
Legge til avhengigheter
I samme katalog installerer du , mssql-pythonog streamlit pakkerpython-dotenv.
uv add mssql-python python-dotenv streamlit
Start Visual Studio Code
Kjør følgende kommando i samme katalog.
code .
Oppdater pyproject.toml
pyproject.toml inneholder metadataene for prosjektet ditt. Åpne filen i favorittredigeringsprogrammet ditt.
Oppdater beskrivelsen slik at den blir mer beskrivende.
description = "A quick example of rapid prototyping using the mssql-python driver and Streamlit."Lagre og lukk filen.
Oppdater main.py
Åpne filen som heter
main.py. Det skal ligne på dette eksemplet.def main(): print("Hello from rapid-protyping-qs!") if __name__ == "__main__": main()Øverst i filen legger du til følgende importer over linjen med
def main().Tips
Hvis Visual Studio Code har problemer med å løse pakker, må du oppdatere tolken for å bruke det virtuelle miljøet.
from os import getenv from dotenv import load_dotenv from mssql_python import connect, Connection import pandas as pd import streamlit as stMellom importene og linjen med
def main(), legg til følgende kode.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')Mellom importene og
def page_load() -> None:, legg til denne koden._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 dataFinn denne koden.
def main(): print("Hello from rapid-protyping-qs!")Erstatt den med denne koden.
def main() -> None: page_load() if _connection: _connection.close()Lagre og lukk
main.py.
Lagre tilkoblingsstrengen
Åpne
.gitignorefilen og legg til en ekskludering for.envfiler. Filen din skal ligne på dette eksemplet. Sørg for å lagre og lukke den når du er ferdig.# Python-generated files __pycache__/ *.py[oc] build/ dist/ wheels/ *.egg-info # Virtual environments .venv # Connection strings and secrets .envI gjeldende katalog oppretter du en ny fil med navnet
.env.I
.envfilen legger du til en oppføring for tilkoblingsstrengen med navnetSQL_CONNECTION_STRING. Erstatt eksemplet her med den faktiske tilkoblingsstrengverdien.SQL_CONNECTION_STRING="Server=<server_name>;Database={<database_name>};Encrypt=yes;TrustServerCertificate=no;Authentication=ActiveDirectoryInteractive"
Bruk uv run for å kjøre skriptet
Tips
Hvis du vil bruke Microsoft Entra Authentication i macOS, må du være logget på via enten Azure Repos-utvidelsen i Visual Studio Code eller ved å kjøre az login via Azure Command-Line Interface (CLI).
I terminalvinduet fra før, eller et nytt terminalvindu som er åpent i samme katalog, kjører du følgende kommando.
uv run streamlit run main.pyRapporten åpnes i en ny fane i nettleseren.
Prøv rapporten for å se hvordan den fungerer. Hvis du endrer noe, lagrer
main.pydu og bruker alternativet for å laste inn på nytt i øvre høyre hjørne av nettleservinduet.For å dele prototypen
.venvdin, kopier alle filene unntatt mappen til den andre maskinen. Mappen.venvgjenopprettes med den første kjøringen.
Neste trinn
Gå til GitHub-repositoriet for driveren mssql-python for flere eksempler, for å bidra med ideer eller rapportere problemer.