globalsy_streamlit/get/currency.py
2024-12-19 13:13:15 +07:00

54 lines
2.0 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import sqlite3
from exchange import ForexDataHandler
# Создаем или подключаемся к базе данных
conn = sqlite3.connect('currency_rates.db')
cursor = conn.cursor()
# Создаем таблицу, если она не существует
cursor.execute('''
CREATE TABLE IF NOT EXISTS currency_rates (
id INTEGER PRIMARY KEY AUTOINCREMENT,
base_currency TEXT NOT NULL,
quote_currency TEXT NOT NULL,
rate REAL NOT NULL,
timestamp TEXT NOT NULL
)
''')
forex_handler = ForexDataHandler()
currency_pairs = [
('CNY', 'RUB'), # Китайский юань
('USD', 'RUB'), # Доллар США
('EUR', 'RUB'), # Евро
('GBP', 'RUB'), # Фунт стерлингов
('JPY', 'RUB'), # Японская йена
('KZT', 'RUB'), # Казахстанский тенге
('UAH', 'RUB'), # Украинская гривна
('BYN', 'RUB'), # Белорусский рубль
]
try:
print("\nТекущие курсы валют:")
for base_currency, quote_currency in currency_pairs:
try:
rate = forex_handler.get_forex_rate(base_currency, quote_currency)
print(f"\nКурс {base_currency}/{quote_currency}:")
print(f"Текущий: {rate['close']:.4f}")
print(f"Дата: {rate['timestamp']}")
# Вставляем данные в базу данных
cursor.execute('''
INSERT INTO currency_rates (base_currency, quote_currency, rate, timestamp)
VALUES (?, ?, ?, ?)
''', (base_currency, quote_currency, rate['close'], rate['timestamp']))
except Exception as pair_error:
print(f"Ошибка при получении курса {base_currency}/{quote_currency}: {pair_error}")
except Exception as e:
print(f"Произошла ошибка: {e}")
# Сохраняем изменения и закрываем соединение
conn.commit()
conn.close()