Arkadaşlar merhaba Python flask ile bir web projesi yapıyorum profil.html` e veritabanından anlık olarak veri çekmek istiyorum, veritabanında bir veriyi güncellediğimde web sitesine anlık olarak gelmiyor sizler için kodları bırakıyorum lütfen yardım edin 🙂
Profil Sayfası
@app.route("/profil")
def profile():
if 'user_id' in session:
Oturum açık ise kullanıcı kimliğini al
user_id = session['user_id']
# Kullanıcı bilgilerini veritabanından al
cursor = db.cursor()
cursor.execute("SELECT * FROM users WHERE id = %s", (user_id,))
user = cursor.fetchone()
# Profil sayfasını göster
return render_template("profil.html", user=user)
else:
# Oturum açık değilse, giriş sayfasına yönlendir
return redirect(url_for('login'))
WebSocket bağlantısı
@socketio.on('connect',namespace='/profil')
def handle_connect():
print('Bir kullanıcı bağlandı.')
Veritabanında güncelleme yapıldığında, istemcilere bildirim gönder
def update_database():
data = {'message': 'Veritabanı güncellendi!'}
socketio.emit('database_update', data)
profil.html kısmı:
<script>
const socket = io.connect('http://' + document.domain + ':' + location.port);
// Sayfa yenilendiğinde veritabanı işlemini al ve HTML'e yazdır
socket.on('veritabani-sonuc', function(data) {
document.getElementById('veritabani-sonuc').innerText = data;
});
</script>
</head>
<body>
<div class="container">
<div class="row">
<div class="col-md-3">
<div class="text-center">
<img src="https://via.placeholder.com/150" alt="Profil Resmi" class="profile-img mb-3">
<h4>{{ user[1] }}</h4>
<hr>
<h5>{{ user[2] }}</h5>
</div>
<hr>
<h5 class="text-center section-title">İletişim <span class="emoji">📞</span></h5>
<ul class="list-unstyled">
<li>Email: {{ user[3] }}</li>
<li>Telefon: {{ user[5] }}</li>
</ul>