Конвертация валюты cbr.ru на Python и jQuery

Задача: конвертировать валюту (USD, EUR) вводимую пользователем в рубли. При смене вида валюты уже введенные данные конвертируем тоже.

Решение:

Python функция которая принимает GET запросом вид валюты и сумму.

import json
import urllib
from xml.etree import ElementTree as ET

def ajax_convert_valuta(request):
    # Пропускаем проверку принимаемых данных, выполните ее сами
    valuta = request.GET['valuta']
    summa = request.GET['sum']
    root = ET.parse(urllib.urlopen('http://www.cbr.ru/scripts/XML_daily.asp')).getroot()
    for x in root:
        if x.attrib['ID'] == 'R01239': valueEUR = x.find('Value').text.replace(',', '.')
        if x.attrib['ID'] == 'R01235': valueUSD = x.find('Value').text.replace(',', '.')
    if valuta == '1':
        convert_valuta = float(valueUSD) * float(summa)
    if valuta == '2':
        convert_valuta = float(valueEUR) * float(summa)
    response = HttpResponse()
    response['Content-Type'] = "text/javascript"
    response.write(json.dumps({'Value': convert_valuta}))
    return response

jQuery у меня примерно такой (в Вашем случае все должно отличаться;]).

$("#valuta_convert").hide();
function initLocal(){
	var localId = $('select[name=type_of_currency]').val();
	var summa = $("input[name=price]").val();
	if(localId != 0){
		var valueLocal = $('select[name=type_of_currency] option:selected').val();
		$.getJSON('/ajax/convert_valuta.json?valuta='+valueLocal+'&='+summa, function(data) {
			$("#valuta_convert").show();
			$("#valuta_convert").text('~ '+data.Value+' руб');
		});
	}else{
		$("#valuta_convert").hide();
	}
}
$('select[name=type_of_currency]').change(initLocal);
$("#price").keyup(function(){
	initLocal();

});

Данные примерные и у всех будут отличаться в том числе и у меня, лишнее я отрезал за ненадобностью.

Добавить комментарий