Python Streamlit ile Hisse Senedi Web Uygulaması Tasarlamak

kusha · 03 Ağustos 2026 · 5 dk okuma

Streamlit, veri odaklı web uygulamaları yazmak için tasarlanmış bir Python kütüphanesidir — HTML/CSS/JavaScript bilmenize gerek kalmadan, sadece Python fonksiyonu çağırır gibi bir arayüz kurmanızı sağlar. Bu derste birkaç satırda bir hisse senedi görüntüleme uygulaması yapacağız.

Kurulum

pip install streamlit yfinance matplotlib

Temel Arayüz Bileşenleri

import streamlit as st

sembol = st.text_input("Hisse senedi sembolü", value="AAPL")
st.title(f"{sembol} Hisse Senedi Grafiği")

st.text_input(...), kullanıcının bir değer girebileceği bir metin kutusu oluşturur — value parametresi, kutunun başlangıç değerini belirler.

Uygulamayı Çalıştırmak

Streamlit uygulamaları normal bir Python scripti gibi çalıştırılmaz, kendi komutuyla başlatılır:

streamlit run app.py

Bu komut tarayıcınızda otomatik olarak yerel bir sayfa açar ve kodunuzda her değişiklik yaptığınızda (kaydettiğinizde) sayfa kendini otomatik günceller.

Tarih Aralığı Seçtirmek

import datetime

baslangic = st.date_input("Başlangıç tarihi", datetime.date(2020, 1, 1))
bitis = st.date_input("Bitiş tarihi", datetime.date.today())

Hisse Verisini Çekmek

import yfinance as yf

df = yf.download(sembol, start=baslangic, end=bitis)

yfinance, Yahoo Finance üzerinden hisse senedi geçmiş verisini (açılış, kapanış, en yüksek/düşük, hacim) ücretsiz olarak çeker.

Grafik Çizmek

st.line_chart(df["Close"])

Tek satırlık bu komut, kapanış fiyatlarının zaman içindeki değişimini interaktif bir çizgi grafiğe dönüştürür.

Veriyi Tablo Olarak Göstermek

st.write(df)

Borsa İstanbul Hisseleri için Sembol Farkı

Yahoo Finance, Borsa İstanbul hisseleri için sembolün sonuna .IS uzantısı ister — örneğin Aselsan için ASELS.IS, Ereğli Demir Çelik için EREGL.IS yazmanız gerekir; sade ASELS yazarsanız veri bulunamaz.

Neden Streamlit?

Streamlit, özellikle veri görselleştirme ağırlıklı, hızlıca prototip çıkarmak istediğiniz projelerde (bir Excel raporunu web'e taşımak, bir modelin sonuçlarını göstermek gibi) klasik bir Flask/Django uygulamasına göre çok daha az kod ve zamanla sonuca ulaşmanızı sağlar — karşılığında, tam kontrol isteyen karmaşık arayüzlerde esneklik açısından daha sınırlıdır.

Sırada Ne Var?

Sırada, tam kontrol isteyen durumlar için Flask ile sıfırdan bir web sitesi kurmayı göreceğiz.