Django Projesi Nasıl Yayınlanır?

Django ile geliştirdiğiniz projenizi yayınlamak istiyorsanız bilmeniz bazı önemli noktalar var. Bugün birlikte Django'da geliştirdiğimiz web uygulamamızı internet ortamında yayınlayacağız.

Django Projesi Nasıl Yayınlanır?
NetAdvi tarafından hazırlanmıştır.
Son Güncelleme: 12 Ocak 2024 14:25

Giriş

Django ile geliştirdiğiniz projenizi yayınlamak istiyorsanız bilmeniz bazı önemli noktalar var. Bugün birlikte Django'da geliştirdiğimiz web uygulamamızı internet ortamında yayınlayacağız.


Django Projesini Yayınlama (Deploy) Videolu Anlatım



Öncelikle bilmelisiniz ki Django web framework'ü olarak alışıla gelmiş eski nesil hostingler de değil sunucuda çalışır o yüzden ilk olarak nasıl bir sunucuda projenizi yayınlamanız gerekiyor nelere dikkat etmelisiniz ilgili blogları inceleyip fikir sahibi olabilirsiniz. Sunucu kiralamak elbette ücretli bir hizmettir. Ancak biz bugün ücretsiz bir sunucu kullanacağız. Önce projemizi yayınlamak için gerekli ayarlamaları yapalım.


1- Sanal Ortam Oluşturma

(Eğer projenizde kullanıyorsanız yani virtualenv varsa 2.Adıma geçin)

Sanal ortamla çalışmak neden ve ne kadar önemli onu zaten bir başka blog yazımızda anlattık. (Sanal ortam nedir). Blog yazımızda adımları takip edip sanal ortam oluşturup aktif ettikten sonra projeniz için kullandığınız bütün paketleri pip install komutu kullanarak sanal ortam içerisine kurmanız gerekecek aksi halde projeniz hata verecektir.


2- requirements.txt Dosyası Oluşturma

Bu dosya projemizi sunucu tarafına yükleyince ilgili paketleri yüklememiz için bize yardımcı olacak.

Oluşturmak için projenin kök dizinindeyken (manage.py dosyasının bulunduğu konum) pip freeze > requirements.txt komutunu çalıştırıyoruz ve dosyamız oluşuyor.


3- Git Repo Oluşturma

Github kullanarak projemizi repository oluşturup push ediyoruz. Yani github.com adresine gidip "start a new repository" bağlantısına tıklayıp repomuzu oluşturuyoruz.

Oluşturduktan sonra projemizi push etmemiz gerekiyor.

Komut satırına yazacağımız kodlar sırasıyla:

  1. git init (eğer git deposunu zaten başlattıysanız sonraki adıma geçin)
  2. gir remote add origin <repourl>
    (repourl = "www.github.com/user_name/repo_name.git" şeklinde olacaktır.)
  3. git add . (projeyi commit'e hazırlayın zaten commit ettiyseniz 5.adıma geçin)
  4. git commit -m "project created"
  5. git push -u origin master

Projemizi başarıyla push ettikten sonra sunucu tarafına aktarmadan önce access token alalım.


4- Github access token oluşturma

  1. github üzerinden sağ üstten profilimize sağ tıklıyoruz ve sırayla:
  2. settings > developer settings > personel access tokens > tokens (classic) sayfasına geliyoruz
  3. create new token (classic) seçiyoruz.
  4. açılan sayfada formu doldurup access tokenimizi alıyoruz.

5- Django Projesini Sunucuya Aktarma

  • Pythonanywhere adresine gidiyoruz kayıt işlemi gerçekleştiriyoruz.
  • Hesabınıza giriş yaptıktan sonra üst sekmeden "web" bağlantısına tıklıyoruz.
  • "Add a new web app" butonuna tıklayıp yeni bir web uygulaması başlatıyoruz. Eğer domain (alan adı) adresiniz yoksa size bir tane oluşturulacaktır subdomain olarak.
  • Açılan pencerede web framework seçmemizi istiyor, biz "Manual Configuration" seçeneğini seçeceğiz.
  • Şimdi python sürümümüzü seçmemizi istiyor, siz hangi python sürümünü kullanıyorsanız onu seçin ileri diyoruz.
  • Son olarak WSGI ayarları hakkında bilgilendirme yapıyor ileri diyoruz ve uygulamamız oluştu. Şimdilik web sekmesi altında yapacağımız işlemlere ara veriyoruz ve "consoles" sekmesine geçiyoruz.

6- Sunucuda Virtualenv Kurma ve Modülleri Yükleme

  • "Start a new console" kısmı altından "Bash" konsola tıklayıp başlatıyoruz.
  • Sunucuda sanal ortam oluşturmamız gerekiyor aynı şekilde python -m venv myenv şeklinde sanal ortamımızı oluşturuyoruz.
  • Aktif etmek için source myenv/bin/activate komutunu çalıştırıyoruz.
  • Git repomuzdaki projeyi sunucuya aktarmamız gerekiyor bash consoluna git clone (repourl www.github.com/kullanici_adi_repo_adi.git) kodu girdikten sonra bizden github kullanıcı adımızı ve şifremizi isteyecek. Kullanıcı adımızı giriyoruz parolamıza github'dan aldığımız access token'ı giriyoruz ve clone işlemini başlatıyoruz.
  • Aktarma işlemi bitince cd komutunu kullanarak projemizin kök dizinine giriyoruz.
  • pip install -r requirement.txt komutunu çalıştırıp gerekli modülleri yüklüyoruz.
  • python manage.py collectstatic kodunu çalıştırıp static dosyalarımızı kök dizine staticfiles klasörüne topluyoruz.

7- Pythonanywhere Web Ayarlarını Yapılandırma

  • Web sekmesini açıyoruz burada birkaç ayar yapmamız gerekiyor.
  • Code kısmından WSGI configuration file'e tıklıyoruz 1-73 ve 90-117 arası satırları siliyoruz, (sadece DJANGO ayarları kalacak) komut satırlarını kaldırıp dosyayı kayıt ediyoruz.
  • Virtualenv altından sanal ortamımızın konumunu giriyoruz.
  • Static files altından staticfiles ve media klasörlerimizin yolunu giriyoruz.
  • Reload kısmındaki butona tıklıyoruz ve sitemiz kullanımda.


Sonuç

Django projemizi sunucuya başarıyla aktarıp yayınladık. Pythonanywhere'in bize ücretsiz sunduğu alan adını değil de kendi alan adınızı kullanmak isterseniz buradaki yazımızdan gerekli ayarlamaları yapabilirsiniz.

Daha güçlü bir sunucu üzerinden web sitenizin dağıtımını yapmak isterseniz django web sitenizin aws ile yayınlanması yazımıza gözatabilirsiniz.


Ziyaretçi
15 Eylül 2023 22:08

Alan adıma www yazmadan girince siteye bağlantıyı 404 not found hatası veriyor

NetAdvi
28 Ekim 2023 17:04

Bu sorun SSL sertifikanız aktif olmadığı için ortaya çıkıyor. Web adresiniz için SSL sertifikası edinirseniz sorun çözülecektir. Yazımızın sonuç kısmındaki bağlantıdan diğer blog yazımızı inceleyerek SSL sertifikanızı aktifleştirip bu sorunu çözebilirsiniz.