kod.py dosyası
from flask import Flask, jsonify, render_template
import requests
app = Flask(__name__)
@app.route('/')
def index():
    odtu = requests.get("https://www.doviz.com/api/v11/converterItems")
    doviz_verisi = odtu.json()['data']['C']
    para_birimleri = []
    for para_birimi in doviz_verisi:
        try:
            alis_degeri = doviz_verisi[para_birimi]['buying']
            satis_degeri = doviz_verisi[para_birimi]['selling']
            para_birimleri.append({
                'para_birimi': para_birimi,
                'alis_degeri': alis_degeri,
                'satis_degeri': satis_degeri
            })
        except KeyError:
            pass
    return render_template('index.html', para_birimleri=para_birimleri)
@app.route('/get_doviz_data')
def get_doviz_data():
    odtu = requests.get("https://www.doviz.com/api/v11/converterItems")
    doviz_verisi = odtu.json()['data']['C']
    para_birimleri = []
    for para_birimi in doviz_verisi:
        try:
            alis_degeri = doviz_verisi[para_birimi]['buying']
            satis_degeri = doviz_verisi[para_birimi]['selling']
            para_birimleri.append({
                'para_birimi': para_birimi,
                'alis_degeri': alis_degeri,
                'satis_degeri': satis_degeri
            })
        except KeyError:
            pass
    return jsonify(para_birimleri)
if __name__ == '__main__':
    app.run(debug=True)
templates > index.html dosyası

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Döviz Kurları</title>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css">
    <link href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" rel="stylesheet">
    <style>
        body {
            background-color: #343a40;
            color: white;
            margin: 20px;
        }
        table {
            background-color: #ffffff;
            color: #000000;
            width: 100%;
        }
        .fade-in {
            animation: fadeIn ease-in-out 0.5s;
        }
        @keyframes fadeIn {
            from {
                opacity: 0;
            }
            to {
                opacity: 1;
            }
        }
    </style>
</head>
<body>
    <div class="container">
        <h1 class="my-4">Döviz Kurları</h1>
        <table class="table table-dark table-striped fade-in">
            <thead>
                <tr>
                    <th>Para Birimi</th>
                    <th>Alış Değeri</th>
                    <th>Satış Değeri</th>
                </tr>
            </thead>
            <tbody id="currencyTableBody">
                {% for para in para_birimleri %}
                <tr>
                    <td>{% if para['para_birimi'] == 'USD' %}<i class="fab fa-usd"></i>{% elif para['para_birimi'] == 'EUR' %}<i class="fas fa-euro-sign"></i>{% endif %} {{ para['para_birimi'] }}</td>
                    <td>{{ para['alis_degeri'] }}</td>
                    <td>{{ para['satis_degeri'] }}</td>
                </tr>
                {% endfor %}
            </tbody>
        </table>
    </div>
    <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.6/dist/umd/popper.min.js"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>
    <script>
function fetchData() {
    fetch('/get_doviz_data') // Sunucuya istek yapacak URL
        .then(response => response.json())
        .then(data => {
            // HTML içeriğini güncelleme işlemi
            const tableBody = document.getElementById('currencyTableBody');
            tableBody.innerHTML = ''; // Tablo içeriğini temizle
            data.forEach(para => {
                const row = document.createElement('tr');
                row.innerHTML = `
                    <td>${para.para_birimi}</td>
                    <td>${para.alis_degeri}</td>
                    <td>${para.satis_degeri}</td>
                `;
                tableBody.appendChild(row); // Yeni verileri tabloya ekle
            });
            tableBody.classList.remove('fade-in');
            void tableBody.offsetWidth;
            tableBody.classList.add('fade-in');
        })
        .catch(error => {
            console.error('Veri alınamadı:', error);
        });
}
fetchData(); // Sayfa yüklendiğinde ilk veriyi al
setInterval(fetchData, 8000); // Her 3 saniyede bir veriyi yenile
    </script>
</body>
</html>