Ana içeriğe atla

Docker pgAdmin: Docker Compose ile PostgreSQL GUI Nasıl Kurulur

Docker Compose ile pgAdmin 4 ve PostgreSQL’i kurmaya yönelik adım adım bir rehber: konteyner yapılandırması, sunucu kaydı ve Query Tool, şema tarayıcı ile yedekleme/geri yükleme gibi temel pgAdmin özellikleri.
Güncel 4 May 2026  · 10 dk. oku

Oturumlar arasında geçiş yapmak, sözdizimini ezberlemek ve yıkıcı bir sorguya yazım hatası yapmadığınızı ummak bir süre sonra yorucu hale gelir. Görsel sorgu planı yoktur, şema tarayıcı yoktur ve bir veritabanını yedeklemenin kolay bir yolu yoktur. İş görür, ancak ideal olmaktan uzaktır.

pgAdmin 4, özel olarak PostgreSQL için geliştirilmiş tarayıcı tabanlı bir GUI ile bunu çözer. Docker’da çalıştırmak ise yerel kurulum gerektirmez. Yapmanız gereken tek şey konteyneri başlatmaktır.

Bu yazıda, PostgreSQL ve pgAdmin 4’ü Docker Compose ile nasıl kuracağınızı, iki konteyneri nasıl bağlayacağınızı ve pgAdmin’in Query Tool’u, şema tarayıcısı ve yedekleme özelliklerini nasıl kullanacağınızı göstereceğim.

Takip edebilmek için makinenizde Docker’ın kurulu ve çalışır durumda olması gerekir. Docker Compose’a yeniyseniz, çok konteynerli geliştirmeyi nasıl basitleştirdiğini anlattığımız rehberimizi okuyun.

pgAdmin 4 Nedir?

pgAdmin 4, PostgreSQL için açık kaynaklı, tarayıcı tabanlı bir yönetim ve geliştirme platformudur. Bir web tarayıcısı üzerinden erişirsiniz; kurmanız gereken masaüstü uygulaması yoktur. Veritabanlarını yönetmek, sorgular çalıştırmak, şemaları incelemek ve yedeklemeleri komut satırına dokunmadan GUI üzerinden yapmak için bir arayüz sunar.

Resmi Docker imajı, pgAdmin geliştirme ekibi tarafından bakımı yapılan dpage/pgadmin4’tür.

pgAdmin 4’ü Docker’da çalıştırmanın yerel kuruluma göre birkaç somut avantajı vardır. Birincisi taşınabilirliktir - tüm veritabanı ortamınız ekip arkadaşlarınızla paylaşabileceğiniz bir docker-compose.yml dosyasında yaşar. İkincisi sürüm çakışması yoktur - pgAdmin kendi konteynerinde, makinenizdeki diğer her şeyden tamamen yalıtılmış şekilde çalışır. İşiniz bittiğinde, docker compose down ile tertemiz silersiniz.

pgAdmin 4 vs. diğer PostgreSQL GUI’leri

Veritabanı yönetimi için GUI araçlarından bolca var. İşte pgAdmin 4’ün iki popüler alternatife kıyasla durumu.

pgAdmin 4 versus popular alternatives

pgAdmin 4 ve popüler alternatifler

DBeaver ve TablePlus iyi araçlardır, ancak hiçbirinin resmi bir Docker imajı yoktur. PostgreSQL örneğiniz zaten Docker’da çalışıyorsa, pgAdmin 4 harika bir uyum sağlar - docker-compose.yml dosyanıza yalnızca bir servis eklemeniz yeterlidir ve her şey aynı ağda birlikte çalışır.

Ortamı Docker Compose ile Kurma

PostgreSQL ve pgAdmin 4’ü birlikte en hızlı çalıştırmanın yolu tek bir docker-compose.yml dosyasıdır. Konuya yeniyseniz, Docker Compose Rehberi temelleri kapsar. Burada pgAdmin’e özgü yapılandırmaya odaklanacağım.

İşte kopyalayıp yapıştırabileceğiniz tam dosya:

services:
  postgres:
    image: postgres:18
    container_name: postgres
    environment:
      POSTGRES_USER: admin
      POSTGRES_PASSWORD: secret
      POSTGRES_DB: mydb
    volumes:
      - postgres_data:/var/lib/postgresql
    networks:
      - pgnetwork

  pgadmin:
    image: dpage/pgadmin4:9.13
    container_name: pgadmin
    environment:
      PGADMIN_DEFAULT_EMAIL: you@yourdomain.com
      PGADMIN_DEFAULT_PASSWORD: password
      PGADMIN_LISTEN_PORT: 5050 
    ports:
      - "5050:5050"                
    volumes:
      - pgadmin_data:/var/lib/pgadmin
    depends_on:
      - postgres
    networks:
      - pgnetwork

volumes:
  postgres_data:
  pgadmin_data:

networks:
  pgnetwork:

depends_on alanı, Docker Compose’a pgadmin’dan önce postgres konteynerini başlatmasını söyler. Olmadan, pgAdmin PostgreSQL hazır olmadan başlatılabilir ve bağlanmada başarısız olabilir. Bu, PostgreSQL’in tamamen sağlıklı olmasını beklemez - yalnızca konteynerin başlamasını bekler. Yine de çoğu yarış durumunu önlemeye yeter.

pgAdmin 4 ortam değişkenleri

İki ortam değişkeni zorunludur:

  • PGADMIN_DEFAULT_EMAIL - pgAdmin web arayüzüne giriş için kullanacağınız e-posta adresi
  • PGADMIN_DEFAULT_PASSWORD - bu hesabın parolası

Üçüncüsü isteğe bağlıdır ama belirtmeniz iyi olur:

  • PGADMIN_LISTEN_PORT - pgAdmin’in konteyner içinde dinlediği port. Varsayılanı 80’dir, ancak 5050 olarak ayarlamak port eşlemelerini düzenli tutar.

Bununla birlikte, kimlik bilgilerini Compose dosyasında sabitlemek kötü bir fikirdir, özellikle de dosya sürüm kontrolüne girerse. Bunları bir .env dosyasına taşıyın.

docker-compose.yml ile aynı dizinde bir .env dosyası oluşturun:

POSTGRES_USER=admin
POSTGRES_PASSWORD=secret
POSTGRES_DB=mydb
PGADMIN_DEFAULT_EMAIL=admin@example.com
PGADMIN_DEFAULT_PASSWORD=secret

Ardından değişkenleri Compose dosyanızda referans verin:

# postgres
environment:
  POSTGRES_USER: ${POSTGRES_USER}
  POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
  POSTGRES_DB: ${POSTGRES_DB}
  
# pgadmin
environment:
  PGADMIN_DEFAULT_EMAIL: ${PGADMIN_DEFAULT_EMAIL}
  PGADMIN_DEFAULT_PASSWORD: ${PGADMIN_DEFAULT_PASSWORD}

Docker Compose komutu çalıştırıldığında .env dosyalarını otomatik olarak alır, bu yüzden ekstra yapılandırmaya gerek yoktur. Sadece .env dosyasını .gitignore’a eklemeyi unutmayın; kimlik bilgileriniz depoya girmez.

Volumeler ve veri kalıcılığı

/var/lib/pgadmin’a eşlenen volume, pgAdmin’in oturum verileri, kayıtlı sunucu bağlantıları ve yapılandırma gibi verileri sakladığı yerdir. Bunu compose dosyasından çıkarırsanız, konteyner her yeniden başlatıldığında hepsini kaybedersiniz.

Mevcut compose dosyasında, Docker’ın ana makinenizde yönettiği isimlendirilmiş bir volume bulunur. Veriler, konteyner yeniden başlatmalarında, yeniden oluşturmalarda ve imaj güncellemelerinde kalıcıdır - volume’ü docker volume rm ile açıkça silmediğiniz sürece.

Yığını Başlatma ve pgAdmin 4’e Erişim

docker-compose.yml hazır olduğunda, yığını başlatmak tek bir komuttur:

docker compose up -d

-d bayrağı her iki konteyneri ayrık modda çalıştırır - arka planda başlarlar ve terminaliniz boş kalır. Her iki konteynerin de çalıştığını doğrulamak için:

docker ps

postgres ve pgadmin için Up durumunu görmelisiniz.

Container status

Konteyner durumu

Bir şeyler ters görünüyorsa, pgAdmin günlüklerini kontrol edin:

docker logs pgadmin

Sağlıklı bir başlangıç şöyle görünür:

pgAdmin startup logs

pgAdmin başlangıç günlükleri

Burada bir hata görürseniz, büyük olasılıkla şu üçünden biridir:

  • Parola kimlik doğrulaması başarısız: .env dosyasında PGADMIN_DEFAULT_PASSWORD eksik ya da hatalı

  • Port zaten ayrılmış: 5050 portunda başka bir şey çalışıyor; Compose dosyanızda ana makine portunu değiştirin

  • Böyle bir dosya veya dizin yok: volume yolu yanlış ya da konteynerin oraya yazma izni yok

Her iki konteyner de ayaktayken ve günlükler temiz görünüyorsa, tarayıcınızı açın ve http://localhost:5050 adresine gidin:

pgAdmin login page

pgAdmin giriş sayfası

PGADMIN_DEFAULT_EMAIL ve PGADMIN_DEFAULT_PASSWORD ile belirlediğiniz e-posta ve parola ile giriş yapın. pgAdmin panosuna ineceksiniz; PostgreSQL sunucunuzu kaydetmeye hazırsınız:

pgAdmin home page

pgAdmin ana sayfası

pgAdmin 4’ü PostgreSQL Konteynerinize Bağlama

pgAdmin kenar çubuğunda, Servers - Register - Server’a sağ tıklayın. Doldurmanız gereken iki sekmeli bir diyalog açılır: General ve Connection.

General sekmesi

Sunucunuza anlamlı bir ad verin - local-dev-postgres gibi. Bu yalnızca pgAdmin içindeki bir etikettir, bu nedenle kurulumunuza uygun herhangi bir şeyi seçebilirsiniz.

Server registration - General tab

Sunucu kaydı - General sekmesi

Connection sekmesi

Burada localhost kullanmayın. 

Bir Docker ağının içinde, localhost konteynerin kendisini ifade eder - ana makinenizi ya da PostgreSQL konteynerini değil. Docker’ın kendi dahili DNS’i vardır ve docker-compose.yml dosyanızda tanımlanan servis adlarını kullanarak konteyner adlarını çözümler. Dolayısıyla PostgreSQL servisinize postgres adını verdiyseniz, kullanmanız gereken ana makine adı budur.

Alanları şu şekilde doldurun:

  • Host name/address: postgres (docker-compose.yml’deki servis adı)

  • Port: 5432

  • Maintenance database: Compose dosyanızdaki POSTGRES_DB değeri (ör. mydb)

  • Kullanıcı adı: POSTGRES_USER değeri (ör. admin)

  • Parola: POSTGRES_PASSWORD değeri

Save’e tıklayın. 

Server registration - Connection tab

Sunucu kaydı - Connection sekmesi

Her şey doğruysa sunucu kenar çubuğunda görünecek ve genişleterek veritabanlarınızı görüntüleyebileceksiniz:

Successful server registration

Başarılı sunucu kaydı

Bu, bağlandığınız anlamına gelir.

Query Tool’u Kullanma

Artık bağlandığınıza göre, pgAdmin 4’ün ve genel olarak Postgres’in temellerini göstereceğim.

Üst menüden Tools - Query Tool’a tıklayarak Query Tool’u açın. Arayüz üç panelden oluşur:

  • Editor: SQL yazdığınız yer
  • Data Output: sorguyu çalıştırdıktan sonra sonuçların göründüğü yer
  • Messages: PostgreSQL’in durum mesajları, hatalar ve yürütme bilgilerini gönderdiği yer

Query tool

Query tool

SQL yazma ve çalıştırma

Basit bir orders tablosu oluşturalım ve biraz veri ekleyelim. Her bloğu Oynat düğmesine basarak veya kısayol olan F5 ile çalıştırabilirsiniz.

Tabloyu oluşturmak için bunu çalıştırın:

CREATE TABLE orders (
    order_id SERIAL PRIMARY KEY,
    customer_name VARCHAR(100) NOT NULL,
    product VARCHAR(100) NOT NULL,
    quantity INT NOT NULL,
    order_date DATE DEFAULT CURRENT_DATE
);

Birkaç satır ekleyin:

INSERT INTO orders (customer_name, product, quantity)
VALUES
    ('Alice Johnson', 'Wireless Keyboard', 2),
    ('Bob Smith', 'USB-C Hub', 1),
    ('Carol White', 'Mechanical Keyboard', 3);

Ve şimdi veriyi sorgulayın:

SELECT * FROM orders;

Querying data

Veri sorgulama

Sonuçlar, Data Output panelinde tablo olarak görünür. Sütunları sıralayabilir, yeniden boyutlandırabilir ve satırları doğrudan ızgaradan kopyalayabilirsiniz.

Görsel sorgu planını okuma

Bir sorgu çalıştırırken arka planda neler olduğunu görmek için, SELECT ifadenizde EXPLAIN ANALYZE çalıştırın:

EXPLAIN ANALYZE SELECT * FROM orders WHERE customer_name = 'Alice Johnson';

Explain Analyze results

Explain Analyze sonuçları

Data Output paneli ham çıktıyı gösterir. Ancak pgAdmin daha iyi bir seçenek sunar. Araç çubuğundaki Explain düğmesine tıklayın - pgAdmin sorgu planını etkileşimli bir grafik olarak oluşturur.

Query plan as a graph

Grafik olarak sorgu planı

Bu sorgu için basit, ancak tabloları birleştiriyor ya da daha karmaşık veri toplamaları yapıyorsanız çok daha fazla bilgi elde edersiniz.

Bu önemlidir çünkü ham EXPLAIN çıktısını okumak yavaş ve hataya açıktır. Görsel plan, PostgreSQL’in büyük bir tabloda tam tablo taraması yaptığını ya da bir indeks varken kullanılmadığını bariz hale getirir.

Veritabanı Şemanızı Yönetme

pgAdmin’in kenar çubuğu size veritabanı yapınızın tam bir görünümünü sunar - ve GUI üzerinden değiştirmenize olanak tanır.

Kenar çubuğu ağacı şu şekildedir: Servers - sunucu adınız - Databases - veritabanınız - Schemas - public - Tables. Herhangi bir tabloyu genişletin; Columns, Indexes ve Constraints alt düğümler olarak listelenir. Ayrıntıları sağ panelde incelemek için herhangi birine tıklayın.

Tablo oluşturma ve değiştirme

Yeni bir tablo oluşturmak için şemanız altındaki Tables’a sağ tıklayın ve Create - Table’ı seçin. Birkaç sekmeli bir diyalog açılır.

Creating tables

Tablo oluşturma

General sekmesi tablo adını belirlediğiniz yerdir. Sütunlarınızı eklemek için Columns sekmesine geçin - her satırda sütun adı, veri türü, uzunluğu ve boş bırakılabilir olup olmadığı ayarlanır. Constraints sekmesi birincil anahtar, yabancı anahtar ve benzersiz kısıtları ele alır.

Mevcut bir tabloya indeks eklemek için kenar çubuğunda tabloyu genişletin, Indexes’e sağ tıklayın ve Create - Index’i seçin. İndekslenecek sütunları seçin ve indeks türünü belirleyin - btree varsayılandır ve çoğu durumda işe yarar.

Creating an index

İndeks oluşturma

Yedekleme ve geri yükleme

Bir veritabanını yedeklemek için Tools - Backup’a gidin. Bir format seçmeniz gerekir:

  • Custom: sıkıştırılmış, ikili format; en esnek seçenektir ve çoğu durumda en iyi tercihtir çünkü içinden tekil tabloları geri yükleyebilirsiniz
  • Plain: herhangi bir metin düzenleyicide açıp okuyabileceğiniz düz bir SQL betiği
  • Tar: sıkıştırılmamış bir arşiv; daha az yaygındır ancak bazı geri yükleme iş akışları için faydalıdır

Bir format ve hedef yolu seçtikten sonra, pgAdmin arka planda pg_dump çalıştırır ve dosyayı yerel makinenize kaydeder.

Creating a backup

Yedek oluşturma

Geri yüklemek için Tools - Restore’a gidin, yedek dosyanızı seçin ve hedef veritabanını belirtin.

Restoring from a backup

Yedekten geri yükleme

Bunun neden kullanışlı olduğunu merak ediyorsanız, geliştirme veritabanınızda yıkıcı bir migrasyonu test ettiğinizi düşünün. Önce bir yedek alın, migrasyonu çalıştırın ve bir şeyler bozulursa, yedeği geri yükleyerek bilinen bir duruma dönün.

Docker’da pgAdmin 4 Çalıştırmak için En İyi Uygulamalar

pgAdmin 4’ü çalıştırmak bir şeydir. Ancak sorunsuz çalışmaya devam etmesini sağlamak için birkaç ekstra şeyi bilmeniz gerekir. İşte bazı pratik ipuçları.

Kimlik bilgilerini Compose dosyanızın dışında tutun

docker-compose.yml dosyanız sürüm kontrolüne girerse - ki genelde girer - sabitlenmiş parolalar da onunla birlikte gider. Kimlik bilgileri için bir .env dosyası kullanın ve .gitignore’a ekleyin. Üretim ortamlarında bir adım daha ileri gidip, hassas değerleri ortam değişkenleri yerine dosyalar olarak bağlayan Docker secrets kullanın.

pgAdmin portunu asla herkese açık şekilde yayınlamayın

Varsayılan olarak Docker portları 0.0.0.0’a bağlar; bu da herkese açık olanlar dahil tüm ağ arayüzleri demektir. Uzak bir sunucuda bu, pgAdmin örneğinizi internetten erişilebilir kılar. Bunun yerine açıkça 127.0.0.1’e bağlayın:

ports:
  - "127.0.0.1:5050:5050"

Bu, pgAdmin’i yalnızca sunucunun kendisinden erişilebilir kılar. Uzak erişime ihtiyacınız varsa bir SSH tüneli veya kimlik doğrulamalı bir ters proxy kullanın.

İmaj etiketlerinizi sabitleyin

dpage/pgadmin4:latest kullanmak, bir sonraki docker compose pull çalıştırıldığında yeni bir sürümü çeker. Bu yeni sürüm farklı davranabilir, yapılandırmanızı bozabilir ya da beklenmedik değişiklikler getirebilir. Her ekip arkadaşının tamamen aynı sürümü çalıştırması için dpage/pgadmin4:9.13 gibi belirli bir etiketi kullanın.

servers.json ile sunucu bağlantılarını önceden yükleyin

Tüm ekibiniz aynı Compose kurulumunu paylaşıyorsa, yığın kalktıktan sonra herkesin PostgreSQL sunucusunu tek tek kaydetmesini beklemeyin. pgAdmin, başlangıçta bağlantıları önceden dolduran bir servers.json dosyasını destekler. Bunu konteynere şu şekilde bağlayın:

volumes:
  - ./servers.json:/pgadmin4/servers.json

Minimal bir servers.json şöyle görünür:

{
  "Servers": {
    "1": {
      "Name": "local-dev-postgres",
      "Group": "Servers",
      "Host": "postgres",
      "Port": 5432,
      "MaintenanceDB": "mydb",
      "Username": "admin",
      "SSLMode": "prefer"
    }
  }
}

Sunucu, pgAdmin başladığında görünecektir - manuel kurulum gerekmez.

Sonuç

Bu yazıda, pgAdmin 4’ü Docker’da sıfırdan kurmayı adım adım gösterdim. PostgreSQL ve pgAdmin 4’ü birlikte ayağa kaldıran bir Docker Compose dosyası yazdınız, iki konteyneri Docker’ın dahili DNS’ini kullanarak bağladınız ve pgAdmin’in çekirdek özelliklerini - Query Tool, şema tarayıcı ve yedekleme/geri yükleme iş akışını - kullandınız.

Buradaki temel ilke tekrarlanabilirliktir. 

Bir docker-compose.yml dosyası, bir servers.json ve bir .env dosyası, bir ekip arkadaşınıza tamamen yapılandırılmış bir veritabanı ortamı teslim etmek için yeterlidir. Bu, “benim makinemde çalışıyor” sorununu bir daha yaşamamanızı sağlar.

Docker ve konteynerleşme konusunda derinleşmek için Intermediate Docker kursumuza göz atın. Çok aşamalı derlemeler, ağ oluşturma ve Compose’a derin dalış hakkında faydalı ipuçlarıyla doludur.


Dario Radečić's photo
Author
Dario Radečić
LinkedIn
Hırvatistan merkezli Kıdemli Veri Bilimci. 700’ün üzerinde yayımlanmış makaleyle 10 M+ görüntüleme elde eden, önde gelen bir teknoloji yazarı. TPOT ile Makine Öğrenimi Otomasyonu kitabının yazarı.

Docker pgAdmin SSS

pgAdmin 4’ü Docker’da Windows ve macOS’ta çalıştırabilir miyim?

Evet. dpage/pgadmin4 imajı, Windows ve macOS dahil Docker’ı destekleyen herhangi bir işletim sisteminde çalışır. Kurulum süreci ve docker-compose.yml dosyası tüm platformlarda aynıdır.

Docker imajını her güncellediğimde pgAdmin 4’ü yeniden yüklemem gerekir mi?

Hayır. Yeni bir imaj sürümü çekmek, /var/lib/pgadmin’i isimlendirilmiş bir volume’e eşlediğiniz sürece kayıtlı verilerinizi etkilemez. Sunucu bağlantılarınız, oturum verileriniz ve yapılandırmanız imaj güncellemeleri ve konteyner yeniden başlatmalarından sağ çıkar.

pgAdmin 4’ü Docker’da üretim veritabanları için kullanmak güvenli mi?

Docker’da pgAdmin 4 geliştirme ve dahili araçlar için uygundur, ancak üretim veritabanına yönlendirmeden önce güvenliği sağlamanız gerekir. pgAdmin portunu asla herkese açık şekilde yayınlamayın, kimlik bilgileri için her zaman bir .env dosyası veya Docker secrets kullanın ve uzak erişime ihtiyacınız varsa pgAdmin’i kimlik doğrulamalı bir ters proxy arkasına koymayı düşünün.

pgAdmin’i PostgreSQL’e bağlarken neden ana makine adı olarak `localhost` kullanamıyorum?

Docker ağı içinde localhost, konteynerin kendisini ifade eder - ana makinenizi ya da başka bir konteyneri değil. Docker, docker-compose.yml’de tanımlanan servis adlarını kullanarak konteyner adlarını çözen dahili bir DNS’e sahiptir. Bunun yerine PostgreSQL servis adını - genellikle postgres - ana makine adı olarak kullanın.

pgAdmin’deki Custom, Plain ve Tar yedek formatları arasındaki fark nedir?

Custom, size en fazla esnekliği veren sıkıştırılmış ikili bir formattır - tüm veritabanı yerine tek tek tabloları geri yükleyebilirsiniz. Plain, geri yüklemeden önce gözden geçirmek veya düzenlemek için herhangi bir metin düzenleyicide açabileceğiniz okunabilir bir SQL betiği üretir. Tar, daha az yaygın olan ancak seçmeli geri yüklemeler için pg_restore tarafından desteklenen sıkıştırılmamış bir arşivdir.

Konular

DataCamp ile Docker Öğrenin

Kurs

Docker'a Giriş

4 sa
46.4K
Docker'a giriş yapın ve veri uzmanlarının araç setinde Docker'ın önemini keşfedin. Docker konteynerleri, görüntüler ve daha fazlası hakkında bilgi edinin.
Ayrıntıları GörRight Arrow
Kursa Başla
Devamını GörRight Arrow
İlgili

blog

Hızlı Sevkiyat İçin Pratik Vibe Kodlama Teknoloji Yığını

Ön uç, arka uç, veritabanları, kimlik doğrulama, depolama, e-posta, test, dağıtım ve izleme için en iyi araçları keşfedin.
Abid Ali Awan's photo

Abid Ali Awan

14 dk.

blog

2026’da En Popüler 40 Yazılım Mühendisi Mülakat Sorusu

Algoritmalar, sistem tasarımı ve davranışsal senaryoları kapsayan bu temel sorularla teknik mülakat sürecine hakim olun. Uzman cevapları, kod örnekleri ve kanıtlanmış hazırlık stratejileri edinin.
Dario Radečić's photo

Dario Radečić

15 dk.

Eğitim

.gitignore Nasıl Kullanılır: Örneklerle Pratik Bir Giriş

Git deponuzu temiz tutmak için .gitignore’u nasıl kullanacağınızı öğrenin. Bu eğitim; temelleri, yaygın kullanım durumlarını ve başlamanıza yardımcı olacak pratik örnekleri kapsar!
Kurtis Pykes 's photo

Kurtis Pykes

Eğitim

Python'da Listeyi String'e Nasıl Dönüştürürsünüz

Bu hızlı eğitimde, Python'da bir listeyi string'e nasıl dönüştüreceğinizi öğrenin.
Adel Nehme's photo

Adel Nehme

Devamını GörDevamını Gör