· 8 years ago · Feb 26, 2018, 04:10 AM
1def currency(source, result, amount):
2 import sqlite3
3 import requests
4 import time
5 import json
6
7 with open('config.json') as json_data_file:
8 data = json.load(json_data_file)
9 from django.http import HttpResponse
10
11 def check_db():
12 try:
13 # Создание и наполнение таблицы
14 c.executescript("""
15 CREATE TABLE IF NOT EXISTS currency (name varchar primary key, value real, time integer);
16 INSERT INTO currency (name) VALUES ('czk'),('eur'),('pln'),('usd');
17 UPDATE currency SET time=1
18 """)
19 return True
20 except:
21 return False
22
23
24 def update_db():
25 try:
26 r = requests.get('https://openexchangerates.org/api/latest.json?app_id='+data['app_id']).json()
27
28 czk = r['rates']['CZK']
29 eur = r['rates']['EUR']
30 pln = r['rates']['PLN']
31 usd = 1
32 c.execute("UPDATE currency SET time = strftime('%s','now')")
33 c.execute("UPDATE currency SET value =%s WHERE name = 'czk' " % (czk))
34 c.execute("UPDATE currency SET value =%s WHERE name = 'eur' " % (eur))
35 c.execute("UPDATE currency SET value =%s WHERE name = 'pln' " % (pln))
36 c.execute("UPDATE currency SET value =%s WHERE name = 'usd' " % (usd))
37 # Подтверждение отправки данных в базу
38 conn.commit()
39
40 return True
41 except:
42 print(r.status_code)
43 return False
44
45 # Подключение к базе
46 conn = sqlite3.connect(data['db_name'])
47 # Создание курÑора
48 c = conn.cursor()
49 amount = float(amount)
50 check_db()
51 c.execute("SELECT time FROM currency WHERE name='czk'")
52 timeold = c.fetchall()[0]
53 dat = time.time()
54 # ЕÑли прошли Ñутки, то обновить показатели
55 if (timeold[0] + 60 * 60 * 24) < dat:
56 update_db()
57
58
59 c.execute("SELECT value FROM currency")
60 cur = c.fetchall()
61 print(cur)
62 src = cur[source][0]
63 res = cur[result][0]
64
65 if int(source) == 3:
66 summ = amount * res
67 if int(result) == 3:
68 summ = 1/src * amount
69 else: summ = res/src * amount
70
71
72 # Завершение ÑоединениÑ
73 c.close()
74 conn.close()
75 return summ
76print(currency(2, 2, 23))