Poznámka
Na prístup k tejto stránke sa vyžaduje oprávnenie. Môžete sa skúsiť prihlásiť alebo zmeniť adresáre.
Na prístup k tejto stránke sa vyžaduje oprávnenie. Môžete skúsiť zmeniť adresáre.
V tomto rýchlom štarte môžete rýchlo Streamlit vytvoriť zostavu, ktorá vám umožní rýchlo zhromaždiť pripomienky od používateľov, aby ste sa uistili, že ste na správnej ceste. Ovládač pre jazyk Python sa používa mssql-python na pripojenie k databáze SQL v službe Fabric a čítanie údajov načítaných do zostavy.
Ovládač mssql-python nevyžaduje žiadne externé závislosti na počítačoch so systémom Windows. Ovládač nainštaluje všetko, čo potrebuje, pomocou jedinej pip inštalácie, čo vám umožní používať najnovšiu verziu ovládača pre nové skripty bez toho, aby ste porušili iné skripty, ktoré nemáte čas aktualizovať a otestovať.
Dokumentácia | Zdrojový kód | Balík (PyPi) | UV
Požiadavky
Python 3
Ak ešte nemáte Python, nainštalujte Python runtime a správcu pip balíkov z python.org.
Radšej nepoužívate svoje vlastné prostredie? Otvorte ako vývojový kontajner pomocou GitHub Codespaces.
Visual Studio Code s nasledujúcimi rozšíreniami:
Ak ešte nemáte
uvprogram , nainštalujteuvpodľa pokynov v https://docs.astral.sh/uv/getting-started/installation/rozhraní .Nainštalujte jednorazové požiadavky špecifické pre operačný systém.
apk add libtool krb5-libs krb5-dev
Vytvorenie projektu a spustenie kódu
- Vytvorenie nového projektu
- Pridanie závislostí
- Spustenie Visual Studio Code
- Aktualizácia súboru pyproject.toml
- Aktualizácia main.py
- Uloženie reťazca pripojenia
- Na spustenie skriptu použite uv run
Vytvorenie nového projektu
Otvorte príkazový riadok vo vývojovom adresári. Ak ho nemáte, vytvorte nový adresár s názvom
python,scriptsatď. Vyhnite sa priečinkom na OneDrive, synchronizácia môže narušiť správu vášho virtuálneho prostredia.Vytvorenie nového projektu pomocou
uvprogramu .uv init rapid-prototyping-qs cd rapid-prototyping-qs
Pridanie závislostí
V rovnakom adresári nainštalujte balíky mssql-python, streamlit, a python-dotenv .
uv add mssql-python python-dotenv streamlit
Spustenie Visual Studio Code
V rovnakom adresári spustite nasledujúci príkaz.
code .
Aktualizácia súboru pyproject.toml
Súbor pyproject.toml obsahuje metadáta pre váš projekt. Otvorte súbor vo svojom obľúbenom editore.
Aktualizujte popis, aby bol popisnejší.
description = "A quick example of rapid prototyping using the mssql-python driver and Streamlit."Uložte a zatvorte súbor.
Aktualizácia main.py
Otvorte súbor s názvom
main.py. Malo by to byť podobné ako v tomto príklade.def main(): print("Hello from rapid-protyping-qs!") if __name__ == "__main__": main()V hornej časti súboru pridajte nasledujúce importy nad riadok s
def main().Tip
Ak má Visual Studio Code problémy s riešením balíkov, musíte aktualizovať interpret, aby používal virtuálne prostredie.
from os import getenv from dotenv import load_dotenv from mssql_python import connect, Connection import pandas as pd import streamlit as stMedzi importy a riadok s
def main(), pridajte nasledujúci kód.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')Medzi importy a
def page_load() -> None:, pridajte tento kód._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 dataNájdite tento kód.
def main(): print("Hello from rapid-protyping-qs!")Nahraďte ho týmto kódom.
def main() -> None: page_load() if _connection: _connection.close()Uložiť a zavrieť
main.py.
Uloženie reťazca pripojenia
Otvorte
.gitignoresúbor a pridajte vylúčenie pre.envsúbory. Váš súbor by mal byť podobný tomuto príkladu. Po dokončení ho nezabudnite uložiť a zatvoriť.# Python-generated files __pycache__/ *.py[oc] build/ dist/ wheels/ *.egg-info # Virtual environments .venv # Connection strings and secrets .envV aktuálnom adresári vytvorte nový súbor s názvom
.env.Do súboru
.envpridajte položku reťazca pripojenia s názvomSQL_CONNECTION_STRING. Nahraďte tu príklad skutočnou hodnotou reťazca pripojenia.SQL_CONNECTION_STRING="Server=<server_name>;Database={<database_name>};Encrypt=yes;TrustServerCertificate=no;Authentication=ActiveDirectoryInteractive"
Na spustenie skriptu použite uv run
Tip
Ak chcete používať overovanie Microsoft Entra v systéme macOS, musíte sa prihlásiť buď prostredníctvom rozšírenia Azure Repos v editore Visual Studio Code, alebo spustením az login prostredníctvom rozhrania Azure Command-Line Interface (CLI).
V okne terminálu z minulosti alebo v novom okne terminálu otvorenom v rovnakom adresári spustite nasledujúci príkaz.
uv run streamlit run main.pyZostava sa otvorí na novej karte vo webovom prehliadači.
Vyskúšajte zostavu a zistite, ako funguje. Ak niečo zmeníte, uložte
main.pya použite možnosť opätovného načítania v pravom hornom rohu okna prehliadača.Ak chcete zdieľať svoj prototyp, skopírujte všetky súbory okrem priečinka
.venvdo druhého počítača..venvPriečinok sa znova vytvorí pri prvom spustení.
Ďalší krok
Navštívte mssql-python odkladací priestor ovládačov GitHub, kde nájdete ďalšie príklady, môžete prispieť nápadmi alebo nahlásiť problémy.