前段时间才接触web前端开发,但是对于初学者来说,flask、django这种稍微大点的框架确实不太适合。如今,Dash是一个集众多家之长于一体的轻量级Web开发库。达世币是什么?Dash是一个Python库,用于在没有JavaScript的情况下构建基于Web的应用程序。Dash还是一个用于创建分析Web应用程序的用户界面库。那些使用Python进行数据分析、数据挖掘、可视化、建模、仪器控制和报告的人可以立即使用Dash。Dash基于Plotly.js、React和Flask构建,将下拉菜单、滑块和图表等现代UI元素与您的分析Python代码相结合。网页搭建相关依赖(库)安装步骤Tips:本文基于Windows10、Anaconda3、SublimeText,Python版本为3.6.5。我习惯于为dash开发创建一个单独的虚拟环境。创建命令:condacreate-nmyenv_dashpython==3.6.5安装Dash的第三方包:pipinstalldash是基于Flask的,所以系统会自动安装相应的依赖包。在这里,我建议还安装一个额外的依赖项:dash_bootstrap_components;pipinstalldash_bootstrap_components这个依赖包含了Twitter的bootstrap组件。导入相关包fromdashimportDash,html,dccfromdash.dependenciesimportInput,Outputimportdash_bootstrap_componentsasdbcBuildapptry:#获取在线bootstrap.min.cssapp=Dash(__name__,external_stylesheets=['https://cdn.staticfile.org/twitter-bootstrap/4.5.2/css/bootstrap.min.css'])print('ThispageisrenderedbasedononlineCSS')except:#Getlocalbootstrap.min.cssapp=Dash(__name__,external_stylesheets=[r"E:\Desktop\My_Python\Dash\css\bootstrap.min.css"])print('本网页基于本地CSS渲染')app.title='在线货币计算器'css这里使用的是Online和local,使用try...except...防止加载在线的css文件导致错误。构造结果的输出函数代码如下(示例):#输出函数,为了重复使用,定义函数defitem(name,img_path)更快:returndbc.ListGroupItem([html.H5(name),html.Img(src=img_path),html.H5('---',id=name,className='float-right')])因为是单输入,多输出,构建item的功能可以复用,代码优化,函数参数有货币名称和国旗(提前准备好图片素材,尺寸建议不要太大,我的图片是160*110)。dbc.ListGroupItem组件可以很好地定位标签和文本;className='float-right'可以理解为一种显示样式,代表“向右浮动”的网页结构。Layout构建代码如下(示例):app.layout=dbc。Container(children=[dbc.ListGroup([dbc.ListGroupItem(children=[html.H1("汇率计算器-简易版",style={'textAlign':'center','color':'#272528'}),html.P('输入:用于兑换外币的人民币数量;输出:可兑换的外币数量;单位:单位货币价值。',style={'textAlign':'center','color':'#BB002D'}),dbc.Input(value=0,id='input',type='number')],active=True),item('JPY','./assets/Japan.jpg'),item('USD','./assets/USA.jpg'),item('GBP','./assets/UK.jpg'),item('HKD','./assets/Hongkong.jpg'),item('EUR','./assets/EU.png'),item('CHF','./assets/France.png'),item('INR','./assets/India.jpg')],className='shadow')],style={'padding':'2rem'})layout为GUI布局,使用listmode,按行列排列;style={'textAlign':'center','color':'#272528'}为文本排版样式设置,为字典类型,可以设置字体、颜色等。dbc.Input(value=0,id='input',type='number')默认值为0,数据类型为number进行计算;style={'padding':'2rem'}是Container的居中显示样式,代表画布距边框的宽度。回调参数设置代码如下(示例):@app.callback(output=[Output('JPY','children'),Output('USD','children'),Output('GBP','children'),Output('HKD','children'),Output('EUR','children'),Output('CHF','children'),Output('INR','children')],输入=[Input('input','value')])defrule(rmb):rmb=rmbifrmb不是Noneelse0return(f'{round(rmb/0.0501,2)}¥',f'{round(rmb/6.7646,2)}$',f'{round(rmb/8.1682,2)}¥',f'{round(rmb/0.8615,2)}$',f'{round(rmb/6.8881,2))}',f'{round(rmb/7.0309,2)}',f'{round(rmb/0.0852,2)}$')@app.callback可以理解为网页的装饰器相互作用。规则函数用于计算汇率。ps:这里的货币符号不一定都是对的,只是更有意义而已,不要太认真!!!界面效果总结这个项目到这里,整个项目就完成了。涉及到的一些基本功还是需要一点技巧的。好了,今天的分享就到这里,动态汇率如何使用requests爬虫获取实时汇率等后续更新。转换。
