May 3, 2021 10:33 am GMT
Original Link: https://dev.to/swapanroy/currency-converter-with-python-9ef
Currency Converter with Python
With COVID surging, enjoying the weekend with outdoor recreation has become a challenge. Last weekend, my better half was converting USD into multiple currencies.
Concept:
- Create a space for user input ( in our case USD is the base currency that needs to be converted into other currencies)
- Use API to fetch data and parse it.
- Present the data on the UI screen.
Below is the process that I followed
Using Python 3.9 (Latest version) -download here
Use tkinter library for UI (pip install tkinter )
Use request library to pull data via API
Create buttons like Convert to fetch data and Clear to erase the content
Final Output
Code Snippet
Laying out the labels on the tkinter grid.# Create a Label widget with "USD" as label l0 =Label(window,text="USD") l0.grid(row=0,column=0) # The Label is placed in position 0, 0 in the window l1 = Label(window,text="INR") l1.grid(row=1,column=0) # The Label is placed in position 1, 0 in the window l2 = Label(window,text="GBP") l2.grid(row=1,column=1) # The Label is placed in position 1, 1 in the window e2 = Entry(window,textvariable=e2_value) # Create an Entry box for users to enter the value e2.grid(row=0,column=1) # Create a button widget # The from_currency() function is called when the button is pushed b1 = Button(window,text="Convert",command=from_currency) b1.grid(row=0,column=2) # The delete function is called when the button is pushed b2 = Button(window,text="Clear",command=delete) b2.grid(row=0,column=3) # Create four empty text boxes, t1, t2, t3 and t4 for values to show up t1 = Text(window,height=1,width=20) t1.grid(row=2,column=0)Fetch Data via URL # Where USD is the base currency you want to use url = 'https://v6.exchangerate-api.com/v6/KEY/latest/USD/' # Making our request response = requests.get(url) data = response.json() # Your JSON object print(data['conversion_rates']['USD'])
Functions
def from_currency():# Get user value from input box and multiply by today's conversion rate to get INR and round it to 2 decimals rupees = round(float(e2_value.get()) * data['conversion_rates']['INR'],2)# Get user value from input box and multiply by today's conversion rate to get GBP pound = round(float(e2_value.get())*data['conversion_rates']['GBP'],2). Empty the Text boxes if they had text from the previous use and fill them again t1.delete("1.0", END) # Deletes the content of the Text box from start to END def delete(): # Deletes content from t1 Text box t1.delete("1.0", END) # Deletes content from t2 Text box t2.delete("1.0", END)
Code wil soon be added to Github.
Note: Thanks to John McArthur for this photo via @unsplash
Original Link: https://dev.to/swapanroy/currency-converter-with-python-9ef
Share this article:
Tweet
View Full Article
Dev To
An online community for sharing and discovering great ideas, having debates, and making friendsMore About this Source Visit Dev To