python教程:⽤简单的Python编写Web应⽤程序
python现在已经成为很多程序员关注的编程语⾔之⼀,很多程序员也都开始弄python编程,并且很多时候都会⽤⾃⼰的操作来选择,⽽现在不管是程序员还是少⼉编程,都会有python这门课,今天就和⼤家分享⼀下。
  安装
  安装步骤跟运⾏指令⼀样简单:
  pip install streamlit
  查看是否安装成功时只需运⾏:
  streamlit hello
  屏幕上应该显⽰的是:
  可以在浏览器中访问本地URL:localhost:8501,来查看执⾏中的Streamlit应⽤程序。开发⼈员那⾥也
有许多很棒的样本可供尝试。
  Streamlit“你好,世界”
  Streamlit旨在通过简单的Python代码实现简单的程序开发。stackoverflowerror解决方法
  那就设计⼀款简单的应⽤程序,看看它是否真的像它说的那样。
  从Streamlit的名为“hello,world”的程序⼊⼿,这个程序并不复杂。只需要复制粘贴下⾯这个代码到“helloworld.py”的⽂件夹中即可。
  import streamlit as st
  x=st.slider('x')
  st.write(x,'squared is',x*x)
  然后到最后运⾏阶段时:
  streamlit run helloworld.py
  看吧,浏览器连接到localhost:8501,就可以看到执⾏中的程序,滑动⿏标就可以得到结果。
  简单的滑块插件应⽤程序
  操作⾮常简单。在构建上图应⽤程序时,⽤到了Streamlit的两个特性:
  st.slider插件——滑动改变Web应⽤程序的输出内容。
  以及通⽤的st.write指令。笔者对于它能从图标、数据框和简单的⽂本中编写任何东西感到惊讶。后⾯会有详细介绍。
  敲⿊板:⼤家要记住每次改变插件值时,整个应⽤程序都会由上⾄下运⾏。
threadlocal存储登录用户信息  Streamlit插件
  插件提供了控制应⽤程序的⽅法,阅读了解插件的最佳选择就是API参考⽂档,不过笔者这⾥也会讲解⼀些插件,它们都是⽤户在操作后期会⽤的最主要的插件。
  1.滑块
  streamlit.slider(label,min_value=None,max_value=None,value=None,step=None,format=None)
  在上⽂已经⽬睹了st.slider的执⾏过程,它可以结合min_value、max_value使⽤,⽤于进⼀步得到⼀定范围内的输⼊内容。
  2.⽂本输⼊
  获取⽤户输⼊最简单的⽅式是输⼊URL或⼀些⽤于分析情绪的⽂本内容,需要的只是⼀个⽤来命名⽂本框的标签。
  import streamlit as st
  _input('Enter URL')
  st.write('The Entered URL is',url)
  看到的程序将是这样:
  简单的text_input widget程序
  贴⼠:可以只改变helloworld.py⽂件然后刷新页⾯。笔者的做法是打开该⽂件然后在⽂本编辑器中改动,再⼀点⼀点查看变动的地⽅。
  3.复选框
  复选框的⼀个功能就是隐藏或显⽰/隐藏程序中的特定区域,另⼀个⽤途是设置函数的布尔参数值。st.checkbox()需要⼀个参数,即插件标签。在该应⽤程序中,复选框会⽤来切换条件语句。
  import streamlit as st
  import pandas as pd
  import numpy as np
  ad_csv("football_data.csv")
  if st.checkbox('Show dataframe'):
  st.write(df)
  简单的复选框插件应⽤程序
  4.下拉框插件
  通过st.selectbox可以在⼀系列选项或列表中进⾏选择。常见的⽤法是将其作为下拉项然后从名单中挑选值。
  import streamlit as st
少儿python入门教程
  import pandas as pd
  import numpy as np
  ad_csv("football_data.csv")option=st.selectbox(
  'Which Club do you like best?',
  df['Club'].unique())
  'You selected:',option
  简单的下拉框/复选框插件程序
  5.多选插件
  也可以⽤下拉框内的多个值。这⾥讲的是使⽤st.multiselect在变量选选中获取多个值作为列表。
  import streamlit as st
  import pandas as pd
  import numpy as np
  ad_csv("football_data.csv")
  options=st.multiselect(
  'What are your favorite clubs?',df['Club'].unique())
  st.write('You selected:',options)
  简单的下拉框插件应⽤程序
  ⼀步步创建应⽤程序
  重要插件了解的也差不多了,现在马上要⽤多个插件创建应⽤程序。
  从简单的步骤⼊门,尝试使⽤Streamlit对⾜球数据进⾏可视化。有了上⾯那些插件,这个步骤执⾏起来会容易很多。
  import streamlit as st
  import pandas as pd
  import numpy as np
  ad_csv("football_data.csv")
  clubs=st.multiselect('Show Player for clubs?',df['Club'].unique())
  nationalities=st.multiselect('Show Player from Nationalities?',df['Nationality'].unique())php如何做一个网站
  #Filter dataframe
  new_df=df[(df['Club'].isin(clubs))&(df['Nationality'].isin(nationalities))]
  #write dataframe to screen
  st.write(new_df)
  简单的应⽤程序会是这样的:
  同时使⽤多个插件
  这⼀点也不难,但⽬前看起来似乎太基础了。是否可以考虑加⼊⼀些图表呢?
  Streamlit当前⽀持许多⽤于绘图的库,其中就有Plotly,Bokeh,Matplotlib,Altair和Vega图表。Plotly Express也可以,只不过没有详细说明。也存在⼀些内嵌式图表,相当于Streamlit“⾃带”的,⽐如st.line_chart和st.area_chart.
  此时会⽤到plotly_express,下⾯是设计程序会⽤到的代码。该过程只会调⽤Streamlit四次。剩下的都是⼀些简单的Python代码操作。
  import streamlit as st
  import pandas as pd
  import numpy as np
  import plotly_express as px
  ad_csv("football_data.csv")
  clubs=st.multiselect('Show Player for clubs?',df['Club'].unique())
  nationalities=st.multiselect('Show Player from Nationalities?',df['Nationality'].unique())new_df=df[(df['Club'].isin(clubs))&
(df['Nationality'].isin(nationalities))]
  st.write(new_df)
  #create figure using plotly express
  fig=px.scatter(new_df,x='Overall',y='Age',color='Name')
  #Plot!
  st.plotly_chart(fig)
  添加图表
  改进
  在本⽂⼀开始有提到插件每次发⽣变动时,整个应⽤程序就会由上⾄下地运⾏。其实并不可⾏,因为创建的应⽤程序会保留下深度学习模型或复杂的机器学习模型。接下来在讲Streamlit的缓存时会向读者阐释这⼀点。
  1.缓存
  在这个简单的程序⾥,但凡值有所变动时,数据科学家们就会反复浏览数据框。它⽐较适⽤于⽤户⼿中的⼩规模数据,⾄于⼤规模或需要进⾏很多步处理的数据,它是不予理睬的。接下来在Streamlit中通过st.cache装饰器函数体验缓存的功能吧。
  import streamlit as st
  import pandas as pd
  import numpy as np
  import plotly_express as px
  df=st.ad_csv)("football_data.csv")
  或者是复杂⼀些、时间耗费久⼀些的函数,只需要运⾏⼀次,此时可以⽤:
  st.cache
  def complex_func(a,b):
  DO SOMETHING COMPLEX
  #Won't run again and again.
  complex_func(a,b)
  ⽤Streamlit的缓存装饰器标记函数时,⽆论这个函数是否执⾏,都会检查输⼊的参数值(由该函数处理的)。
  如果Streamlit之前没有处理过这些数据,它会调⽤函数并将运算结果存到本地缓存中。
  下次再调⽤函数时,倘若还是这些参数,Streamlit就会完全跳过这⼀块的函数执⾏,直接⽤缓存器⾥的结果数据。
  2.侧边栏
  为了根据个⼈的倾向需求使界⾯更加简洁,⽤户可能会想着把插件移动到侧边栏内,⽐如像Rshiny仪表盘。这⾮常简单,只需在插件代码中添加st.sidebar即可。
  import streamlit as st
  import pandas as pd
  import numpy as np
  import plotly_express as px
  df=st.ad_csv)("football_data.csv")
  clubs=st.sidebar.multiselect('Show Player for clubs?',df['Club'].unique())
  nationalities=st.sidebar.multiselect('Show Player from Nationalities?',df['Nationality'].unique())
  new_df=df[(df['Club'].isin(clubs))&(df['Nationality'].isin(nationalities))]
  st.write(new_df)
  #Create distplot with custom bin_size
  fig=px.scatter(new_df,x='Overall',y='Age',color='Name')
  #Plot!
  st.plotly_chart(fig)
  将插件移动到侧边栏内
  3.Markdown标记语⾔可以吗?
  笔者特别喜欢在Markdown⾥编辑⽂字,因为发现相⽐HTML,它少了那些繁琐的操作,⽽且更能胜任数据科学的任务。所以读者也能在Streamlit程序中应⽤Markdown吗?
  答案是可以。⽽且是有迹可循的。在笔者看来,最合适的就是调⽤Magic指令。通过该指令,⽤户做标记语⾔就会像写评论⼀样简单。⽤户也可以使⽤指令st.markdown。
  import streamlit as st
  import pandas as pd
  import numpy as np
  import plotly_express as px'''
  #Club and Nationality App
  This very simple webapp allows you to select and visualize players from certain clubs and certain nationalities.
  '''
北京肥猪满圈的博客  df=st.ad_csv)("football_data.csv")
  clubs=st.sidebar.multiselect('Show Player for clubs?',df['Club'].unique())
  nationalities=st.sidebar.multiselect('Show Player from Nationalities?',df['Nationality'].unique())new_df=df[(df['Club'].isin(clubs))& (df['Nationality'].isin(nationalities))]
  st.write(new_df)
  #Create distplot with custom bin_size
  fig=px.scatter(new_df,x='Overall',y='Age',color='Name')
  '''
  ###Here is a simple chart between player age and overall
架构师和程序员哪个工资高  '''
  st.plotly_chart(fig)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。