Stundas uzdevums: Pārveidot terminālī darbojošos Python skriptu par tīmekļa lietotni ar Streamlit bibliotēku.
70 min darba sadalījums: 1. uzdevums (~20 min) - atjauno teorijas piemēru vai minimālo prototipu; 2. uzdevums (~25 min) - pielieto to galvenajā uzdevumā; 3. uzdevums (~25 min) - pārbaudi rezultātu, izlabo kļūdas un tikai beigās pieraksti vienu secinājumu. Papildus/4. līmeņa uzdevums ir paredzēts tikai tad, ja pamatdarbs ir pabeigts.
Pirms sāc: izmanto iepriekš apgūto un šīs lapas teorijas/koda piemērus. Ja vajadzīga jauna komanda vai rīks, vispirms atrodi tās paraugu teorijas sadaļā.
Streamlit ir Python ietvars, kas pārvērš parastu Python kodu par interaktīvu web lietotni - bez HTML/CSS/JS rakstīšanas.
import streamlit as st
# Virsraksti
st.title("Mans projekts")
st.header("Apakšsadaļa")
st.write("Vienkāršs teksts")
st.markdown("**Treknrakstā** un *kursīvā*")
# Ievades elementi
vards = st.text_input("Tavs vārds:")
vecums = st.number_input("Vecums", min_value=1, max_value=120, value=18)
ir_skoleens = st.checkbox("Es piedalos")
limenis = st.slider("Grūtība", 1, 10, 5)
if st.button("Sākt"):
st.success(f"Sveiks, {vards}! ({vecums} g.)")
# Datu attēlošana
import pandas as pd
df = pd.DataFrame({"Vārds": ["Anna", "Jānis"], "Punkti": [120, 95]})
st.dataframe(df)
st.bar_chart(df.set_index("Vārds"))
Palaiž ar streamlit run app.py. Lapa pati pārlādējas, kad maini kodu!
Šis ir īss iesildīšanās uzdevums. Nokopē sagatavi, ielīmē to pareizajā koda vietā un palaid. Šeit pietiek droši izmēģināt tēmu 9.3 Python pārvēršana tīmekļa saskarnē; detalizētu izpratni veidosi nākamajos uzdevumos.
Kopējamais piemērs vai sagatave: izmanto šo bloku kā starta punktu, nevis kā gala risinājumu.
import streamlit as st
# Virsraksti
st.title("Mans projekts")
st.header("Apakšsadaļa")
st.write("Vienkāršs teksts")
st.markdown("**Treknrakstā** un *kursīvā*")
# Ievades elementi
vards = st.text_input("Tavs vārds:")
vecums = st.number_input("Vecums", min_value=1, max_value=120, value=18)
ir_skoleens = st.checkbox("Es piedalos")
limenis = st.slider("Grūtība", 1, 10, 5)
if st.button("Sākt"):
st.success(f"Sveiks, {vards}! ({vecums} g.)")
# Datu attēlošana
import pandas as pd
df = pd.DataFrame({"Vārds": ["Anna", "Jānis"], "Punkti": [120, 95]})
st.dataframe(df)
st.bar_chart(df.set_index("Vārds"))
main.py failā un palaid no termināļa.Pievieno šīs stundas paņēmienu kā nelielu, strādājošu projekta daļu.
apstrada_gajienu(), rezultats vai routes.py.Pārbaudi, vai algoritms darbojas paredzami ar dažādiem datiem.
Ja pamatdarbs ir pabeigts, paplašini projektu ar vienu nelielu programmētu uzlabojumu.
session_state.st.write u.c. strādā tikai streamlit run kontekstā.if st.button(): bloks: Bez tā kods izpildās uzreiz.import streamlit as st
import random
st.title("▸ Skaitļu minētājs")
if "skaitlis" not in st.session_state:
st.session_state.skaitlis = random.randint(1, 100)
st.session_state.megi = 0
minejums = st.number_input("Min skaitli (1-100):", 1, 100, 50)
if st.button("Min!"):
st.session_state.megi += 1
if minejums == st.session_state.skaitlis:
st.success(f"★ Trāpīts {st.session_state.megi}. mēģinājumā!")
elif minejums < st.session_state.skaitlis:
st.info("↑ Patiesais ir lielāks")
else:
st.info("↓ Patiesais ir mazāks")
if st.button("Jauna spēle"):
del st.session_state.skaitlis
st.rerun()