show source code in lessions page

This commit is contained in:
Carl Zh.
2024-11-04 16:58:46 -06:00
parent 14e411f398
commit 90dc7e1448
6 changed files with 83 additions and 2 deletions

View File

@@ -75,3 +75,63 @@ def pythonx_lesson3():
st.success('Done')
source_code = """
from datetime import date, datetime
import streamlit as st
import yfinance as yf
import plotly.express as px
# print text formatted by HTML
st.markdown(
"<h1 style='text-align:center; color:red;'> Sample Stock Price App. </h1>",
unsafe_allow_html=True)
st.write(
'We will use the code learned from previous lecture to build an online application for tracing stock price'
)
# print text in markdown
st.markdown("## **Check Stock Information**")
# a list of stock names
stock_names = ['MSFT', 'AAPL', 'AMZN', 'GOOGL']
# select a stock to check
target_stock = st.selectbox('Select a stock to check', options=stock_names)
st.markdown("## **Check Stock Price History**")
# start date of the stock infomation, default is the first day of year 2024
start_date = st.date_input('Start Date', datetime(2024, 1, 1))
# end date of the stock infomation, default is date of today
end_date = st.date_input("End Date")
# get today date
today = date.today()
if st.button('Submit'):
# check valid date
if start_date > today or end_date > today:
st.write("## **Please select a valid date period.**")
else:
# download the stock data based on stock name, start/end date
data = yf.download(target_stock, start_date, end_date)
# show a progress bar
with st.spinner(text='In progress'):
fig = px.line(data,
x=data.index,
y=['Open', 'High', 'Low', 'Close'],
title=target_stock + " Stock Price",
labels={
"value": "Stock Price ($)",
"variable": "Price Type"
})
st.write(fig)
st.success('Done')
"""
st.divider()
st.subheader("**Source Code of the Sample App.**")
st.code(source_code, line_numbers=True)