中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么利用Python實現一個簡單的Web匯率計算器

發布時間:2022-08-26 11:43:46 來源:億速云 閱讀:315 作者:iii 欄目:開發技術

本文小編為大家詳細介紹“怎么利用Python實現一個簡單的Web匯率計算器”,內容詳細,步驟清晰,細節處理妥當,希望這篇“怎么利用Python實現一個簡單的Web匯率計算器”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

Dash是什么

Dash 是一個用于構建基于 Web 的應用程序的 Python 庫,無需 JavaScript 。

Dash 同時也是用于創建分析 Web 應用程序的用戶界面庫。那些使用 Python 進行數據分析、數據挖掘、可視化、建模、儀器控制和報告的人可以立即使用 Dash 。

Dash 建立在 Plotly.js、React 和 Flask 之上,將現代 UI 元素(如下拉列表、滑塊和圖形)與你的分析 Python 代碼相結合。

網頁搭建步驟

安裝相關依賴(庫)

提示:本文基于Windows 10、Anaconda 3、Sublime Text,Python版本為3.6.5 個人習慣單獨新一個用于dash開發的虛擬環境,創建命令:

conda create -n myenv_dash python==3.6.5

安裝Dash的第三方包:

pip install dash

因為是基于Flask,所以系統會自動安裝相應的依賴,這里我建議也安裝一個額外依賴:dash_bootstrap_components

pip install dash_bootstrap_components

此依賴包含Twitter的bootstrap組件。

導入相關包

from dash import Dash, html, dcc
from dash.dependencies import Input, Output
import dash_bootstrap_components as dbc

構建app

try:
    # 獲取在線bootstrap.min.css
    app = Dash(__name__, external_stylesheets = ['https://cdn.staticfile.org/twitter-bootstrap/4.5.2/css/bootstrap.min.css'])
    print('此網頁渲染基于在線的CSS')
except:
    # 獲取本地bootstrap.min.css
    app = Dash(__name__, external_stylesheets = [r"E:\Desktop\My_Python\Dash\css\bootstrap.min.css"])
    print('此網頁渲染基于本地的CSS')
app.title = '在線匯率計算器'

此處使用的css有在線的和本地的,利用try……except……防止在線的css文件無法加載而導致報錯。

構建結果輸出函數

代碼如下(示例):

# 輸出函數,對于重復使用的,定義函數更快捷
def item(name, img_path):
    return dbc.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布局,采用列表的模式,根據行列進行排布;style={'textAlign': 'center','color':'#272528'}為文字排布樣式設定,為字典類型,可以設置字體,顏色等 dbc.Input(value = 0, id = 'input', type='number')默認value值為0,數據類型為number用于計算;style={'padding':'2rem'}為Container(容器)的居中顯示樣式,代表畫布距離邊界的寬度。

callback回調參數設定

代碼如下(示例):

@app.callback(
    output = [
    Output('JPY', 'children'),
    Output('USD', 'children'),
    Output('GBP', 'children'),
    Output('HKD', 'children'),
    Output('EUR', 'children'),
    Output('CHF', 'children'),
    Output('INR', 'children')
    ],
    inputs = [Input('input', 'value')]
    )
def rule(rmb):
    rmb = rmb if rmb is not None else 0
    return (
        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可以理解為裝飾器,用于網頁的交互。rule函數用于計算匯率。ps:這里的貨幣符號不一定全對,意思一些,不用太較真哈!!!

界面效果

怎么利用Python實現一個簡單的Web匯率計算器

怎么利用Python實現一個簡單的Web匯率計算器

讀到這里,這篇“怎么利用Python實現一個簡單的Web匯率計算器”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

易门县| 临猗县| 称多县| 板桥市| 扎鲁特旗| 五指山市| 芷江| 揭西县| 四子王旗| 新绛县| 尉氏县| 碌曲县| 绥棱县| 康定县| 通州区| 诸城市| 宜章县| 和硕县| 定兴县| 寿阳县| 黄浦区| 敦化市| 兴化市| 含山县| 长兴县| 黑龙江省| 海伦市| 乡宁县| 乐都县| 镇坪县| 淳化县| 廉江市| 太和县| 青铜峡市| 安西县| 郓城县| 葵青区| 太康县| 高雄市| 瑞金市| 江口县|