Muistiinpano
Tämän sivun käyttö edellyttää valtuutusta. Voit yrittää kirjautua sisään tai vaihtaa hakemistoa.
Tämän sivun käyttö edellyttää valtuutusta. Voit yrittää vaihtaa hakemistoa.
Tässä pikaoppaassa voit Streamlit luoda nopeasti raportin, jonka avulla voit kerätä nopeasti käyttäjäpalautetta varmistaaksesi, että olet oikealla tiellä. Python-ohjaimen mssql-python avulla voit muodostaa yhteyden SQL-tietokantaan Fabricissa ja lukea raporttiin ladatut tiedot.
Ohjain mssql-python ei vaadi ulkoisia riippuvuuksia Windows-koneissa. Ohjain asentaa kaiken tarvitsemansa yhdellä pip asennuksella, joten voit käyttää ohjaimen uusinta versiota uusiin komentosarjoihin rikkomatta muita komentosarjoja, joita sinulla ei ole aikaa päivittää ja testata.
MSSQL-Python-dokumentaatio | MSSQL-Python-lähdekoodi | Paketti (PyPi) | UV
Edellytykset
Python 3
Jos sinulla ei vielä ole Pythonia, asenna python.org:n Pythonin ajonaikainen ja pip-pakettienhallintaohjelma.
Etkö halua käyttää omaa ympäristöäsi? Avaa devcontainerina GitHub Codespacesin avulla.
Visual Studio Code, jossa on seuraavat laajennukset:
Jos sinulla ei vielä ole,
uvasenna noudattamallauvohjeita .https://docs.astral.sh/uv/getting-started/installation/Asenna kertakäyttöjärjestelmäkohtaiset edellytykset.
Luo projekti ja suorita koodi
- Luo uusi projekti
- Lisää riippuvuuksia
- Käynnistä Visual Studio Code
- Päivitä pyproject.toml
- Päivitä main.py
- Tallenna yhteysmerkkijono
- Käytä uv run -toimintoa komentosarjan suorittamiseen
Luo uusi projekti
Avaa komentokehote kehityshakemistossa. Jos sinulla ei ole sellaista, luo uusi hakemisto nimeltä
python,scripts, jne. Vältä kansioita OneDrivessa, synkronointi voi häiritä virtuaaliympäristön hallintaa.Luo uusi projekti .
uvuv init rapid-prototyping-qs cd rapid-prototyping-qs
Lisää riippuvuuksia
Asenna mssql-pythonsamaan hakemistoon , streamlitja paketit python-dotenv .
uv add mssql-python python-dotenv streamlit
Käynnistä Visual Studio Code
Suorita samassa hakemistossa seuraava komento.
code .
Päivitä pyproject.toml
pyproject.toml sisältää projektisi metatiedot. Avaa tiedosto suosikkieditorissasi.
Päivitä kuvaus kuvaavammaksi.
description = "A quick example of rapid prototyping using the mssql-python driver and Streamlit."Tallenna ja sulje tiedosto.
Päivitä main.py
Avaa tiedosto nimeltä
main.py. Sen pitäisi olla samanlainen kuin tämä esimerkki.def main(): print("Hello from rapid-protyping-qs!") if __name__ == "__main__": main()Lisää tiedoston yläreunaan seuraavat tuonnit rivin yläpuolelle .
def main()Vihje
Jos Visual Studio Codessa on ongelmia pakettien ratkaisemisessa, sinun on päivitettävä tulkki käyttämään näennäisympäristöä.
from os import getenv from dotenv import load_dotenv from mssql_python import connect, Connection import pandas as pd import streamlit as stLisää tuonnin ja rivin väliin
def main()seuraava koodi.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')Lisää tuontien ja väliin
def page_load() -> None:tämä koodi._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 dataEtsi tämä koodi.
def main(): print("Hello from rapid-protyping-qs!")Korvaa se tällä koodilla.
def main() -> None: page_load() if _connection: _connection.close()Tallenna ja sulje
main.py.
Tallenna yhteysmerkkijono
Avaa
.gitignoretiedosto ja lisää tiedostoille poissulkeminen.env. Tiedoston pitäisi olla samanlainen kuin tässä esimerkissä. Muista tallentaa ja sulkea se, kun olet valmis.# Python-generated files __pycache__/ *.py[oc] build/ dist/ wheels/ *.egg-info # Virtual environments .venv # Connection strings and secrets .envLuo nykyiseen hakemistoon uusi tiedosto nimeltä
.env.Lisää tiedostoon
.envmerkintä yhteysmerkkijonolle nimeltäSQL_CONNECTION_STRING. Korvaa tässä oleva esimerkki todellisella yhteysmerkkijonon arvolla.SQL_CONNECTION_STRING="Server=<server_name>;Database={<database_name>};Encrypt=yes;TrustServerCertificate=no;Authentication=ActiveDirectoryInteractive"
Käytä uv run -toimintoa komentosarjan suorittamiseen
Vihje
Jos haluat käyttää Microsoft Entra -todennusta macOS:ssä, sinun on kirjauduttava sisään joko Visual Studio Coden Azure Repos -laajennuksen kautta tai suorittamalla az loginAzure Command-Line Interfacen (CLI) kautta.
Suorita aiemmassa pääteikkunassa tai samaan hakemistoon avautuvassa uudessa pääteikkunassa seuraava komento.
uv run streamlit run main.pyRaportti avautuu uuteen välilehteen selaimessasi.
Kokeile raporttia nähdäksesi, miten se toimii. Jos muutat jotain, tallenna
main.pyja käytä selainikkunan oikeassa yläkulmassa olevaa uudelleenlatausvaihtoehtoa.Jos haluat jakaa prototyyppisi, kopioi kaikki tiedostot kansiota
.venvlukuun ottamatta toiseen koneeseen. Kansio.venvluodaan uudelleen ensimmäisellä ajokerralla.
Seuraava vaihe
Vieraile ohjainten GitHub-arkistossa mssql-python saadaksesi lisää esimerkkejä, joissa voit antaa ideoita tai raportoida ongelmista.