volkantash / django-101

Adım adım django öğrenmeye başlayın.
MIT License
3 stars 0 forks source link

Django 101.10: "Merhaba, Dünya. Bu benim ilk projem." yazısını yazalım. #18

Open volkantash opened 11 months ago

volkantash commented 11 months ago
  1. İlkin adını "ilk_uygulamam" koyduğumuz uygulamanın dizinlerine girelim.

  2. views.py adlı belgeyi açalım.

  3. Aşağıdaki satırları karşımızda göreceğiz.

from django.shortcuts import render

# Create your views here.
  1. Şimdi burada "Merhaba, Dünya. Bu benim ilk projem." yazısını yazalım.
from django.shortcuts import render

# Create your views here.

"Merhaba, Dünya. Bu benim ilk projem."
  1. Python bu düz yazıyı yalın yalın alıp işlemez. Çünkü ne işleyeceğini bilemez. Öyleyse ne işleyeceğini bildirmeliyiz. Django'da bulunan HttpResponse() işlevi var. Bu işlev bir veriyi yayımlanacak yerde göstermeye yarar. Yazıyı bu işlevin verisi olarak sunalım.
    
    from django.shortcuts import render

Create your views here.

HttpResponse("Merhaba, Dünya. Bu benim ilk projem.")

6. "views.py" dosyası uzantısından anlaşılacağı üzere bir Python dosyasıdır. `HttpResponse()` işlevini yazsak da Python bunu neye göre işleyeceğini bilemez. İşte burada bizim HttpResponse'nin kökünü Python'a göstermeliyiz. Bunun için Django'nun HTTP yapılandırmasından HttpResponse'u kullandığımızı şöyle yazacağız: `from django.http import HttpResponse`. Böylece HttpResponse() işlevi işleyebilir olacak.
```py
from django.shortcuts import render

# Create your views here.
from django.http import HttpResponse

HttpResponse("Merhaba, Dünya. Bu benim ilk projem.")
  1. Bu aşamada iken HttpResponse() işlevi views.py dosyası işletilince işleyecektir. Bu dosyayı binbir amaç ile işletmek isteyebiliriz. Amaçların hepsinde bu HttpResponse() işlevini işletmek doğru bir iş olmaz. Öyleyse bunu bir işlev oluşturma içine alalım ve bu işlevi dilediğimiz yerde işletelim. İşlevimizin adı index() olsun.
    
    from django.shortcuts import render

Create your views here.

from django.http import HttpResponse

def index(request): HttpResponse("Merhaba, Dünya. Bu benim ilk projem.")


8. index() işlevini oluşturduk ancak işlenenleri bir döndürme olarak işletmedik. İşler böyle olunca oluşturduğumuz işlev başka işleyecek. Ağ sayfalarımızın ana sayfasında bu yazıyı gösterebilmek için "return" kullanmalıyız. 
```py
from django.shortcuts import render

# Create your views here.
from django.http import HttpResponse

def index(request):
    return HttpResponse("Merhaba, Dünya. Bu benim ilk projem.")
  1. Geriye kalan oluşturduğumuz işlevi işletecek tetiğin eksikliği. Ağbetimize/ağsayfamıza girmemiz bir tetikleme olabilir mi? Evet. Bunu yapabiliriz. 127.0.0.1:8000 betine ermek ister istemez index() işlevi işletilsin istiyoruz. Bunun için Django'da URL yapısını kurmalıyız. URL yapısını kurmak için uygulamızda yeni bir dosya oluşturacağız. Adını "urls.py" koyacağız.

  2. Oluşturduğumuz urls.py içine şunları yazacağız:

    
    from django.urls import path

from . import views

urlpatterns = [ path("", views.index, name="index"), ]


11. Şimdi geliştirme sunucumuzu işletelim ve ne olduğunu görelim.

12. Bir değişiklik göremediniz değil mi? Çünkü oluşturduğumuz uygulamadaki URL yapısını projemizin URL yapısına katmadık. Bunu yapmak için "ilk_projem" altındaki urls.py dosyasını açıp ```path("", include("ilk_uygulamam.urls")),``` komutunu urlpatterns içine katmamız gerekiyor. Ve include işlevini kullandığımız için dosyada include işlevininin köklerine ermeliyiz.
```py
from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path("", include("ilk_uygulamam.urls")),
    path("admin/", admin.site.urls),
]
  1. Yukarıda gördüğünüz izere 2. satırda include yazdık. 5. satırda uygulamamızdaki URL yapısını ekledik.

  2. Şimdi py manage.py runserver ile değişikliği görebilirsiniz. Karşınıza "Merhaba, Dünya. Bu benim ilk projem." yazısı gelecek.

Değişikliklere tek tek ayrıntılı göz atın.

  1. https://github.com/volkantash/django-101/pull/19/commits/5f50ca4cf1c530ede1c0f433dd7ec38a0a7ea1ac
  2. https://github.com/volkantash/django-101/pull/19/commits/7e1c65ffadb86cf34bf94e00172fe9e01f096009
  3. https://github.com/volkantash/django-101/pull/19/commits/d5f01c2434f864211f051dfd1d2f0425426e1f0a
  4. https://github.com/volkantash/django-101/pull/19/commits/723a9ff7f8e31cc1e9abe6ff676e852c258564f8
  5. https://github.com/volkantash/django-101/pull/19/commits/9a4fd6a86207d4a0e42a989ef54605c9b527d891
  6. https://github.com/volkantash/django-101/pull/19/commits/bb6185c2199787b46278c1677fcf1b06881a36d9
  7. https://github.com/volkantash/django-101/pull/19/commits/6dde14803881e99dd2e576d2a6efca3cb0aa7882
  8. https://github.com/volkantash/django-101/pull/19/commits/ed5ec8034d129d346746cf1ef0ef7bbb593c918b
  9. https://github.com/volkantash/django-101/pull/19/commits/d0c463f2bf9ceae0c92bd4f4c5c1acdfcef912ad
  10. https://github.com/volkantash/django-101/pull/19/commits/8482d82ccb700efbc35c322410612103d047490a
  11. https://github.com/volkantash/django-101/pull/19/commits/ed8354e3c26b2b1a1c78b5978f53c09e31692802
  12. https://github.com/volkantash/django-101/pull/19/commits/5aaf1512f905ed30da263b8f7f46bd891b12f2cd