Django Template Kullanımı
Django Kütüphanesinde Template kullanarak Python tabanlı harika web sayfaları oluşturmak çok kolay. Siz de Template’ler kullanarak oldukça işlevli ve yönetilebilir Html sayfalar oluşturmak ister misiniz?

Django ile web sayfaları yaparken Template yani şablon yönteminden faydalanabilirsiniz. Bu hem işinizi kolaylaştıracaktır hem de daha esnek ve daha yönetilebilir bir web sitesi tasarlamanıza yardımcı olacaktır.
Index
Django Template Görünümü
Öncelikle Django Template görünümü için bir proje ve bu projenin içerisinde App oluşturalım. Bunun nasıl yapılacağını Django ile App Oluşturma adlı yazımızda anlatmıştık. Şimdi tekrar üzerinden geçmekte yarar var.
Öncelikle Proje Klasörünü Oluşturun
Bunu isterseniz proje klasörü içerisinde elle oluşturabilirsiniz. Dilerseniz VS Code uygulamasının Terminal bölümünde manuel olarak oluşturabilirsiniz.
Ben burada ikinci yani Terminal üzerinden nasıl Django Projesi ve Uygulaması oluşturulur sorusunun cevabını vereceğim.
cd Desktop
mkdir Template
cd Template
django-admin startproject Template
python manage.py startapp temp_app
TerminalVS Code Ekran Görüntüsü:

VS Code Explorer sekmesinde eğer yukarıdakine benzer bir görünüm açıldıysa sorunsuz bir şekilde proje oluşturdunuz demektir. Şimdi temp_app için bağımsız bir urls.py dosyası oluşturalım.
Bunun için temp_app yazan yere sağ click yapın ve New File sekmesine tıklayın. Dosya adı olarak urls.py yazın ve enter’a basın. Daha sonra yeni oluşturduğunuz urls.py içerisinde aşağıdaki kod satırlarını ekleyiniz.
from django.urls import path
from . import views
urlpatterns = [
dj
path("",views.index,name="index")
]
temp_app/urls.pyProje klasöründeki urls.py dosyasında ise ikinci path satırını ekleyelim;
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path("admin/", admin.site.urls),
path("temp_app/", include("temp_app.urls"))
]
urls.pyŞimdiye kadar yazdığımız kodları test etmek için bir sayfa görünümü oluşturalım. Bunun için temp_app/views.py dosyasında bazı eklemeler yapacağız.
from django.shortcuts import render
from django.http import HttpResponse
from django.urls import reverse
# Create your views here.
def index(request):
return HttpResponse("Main Page")
temp_app/views.pyTüm bu değişiklikleri yazdıktan ve tek tek dosyaları kaydettikten sonra Python Web sunucusunu, aşağıdaki komutu terminal ekranında yazarak çalıştıralım.
python manage.py runserver
TerminalŞimdi bilgisayarınızın web browser uygulamasında http://localhost:8000/temp_app yazarak aşağıdaki gibi sayfaya ulaşalım.

Eğer siz de test ekranı olarak bu sayfayı görebiliyorsanız bir sonraki aşamaya geçebiliriz.
Template İçerisinde Render Modülü Kullanmak
Render, en basit haliyle bir request (talep) ve bir template (şablon) tanımlaması olarak görebiliriz. Bunun için bir Html sayfasına ihtiyaç duyulabilir. Template’ler için bir klasör tanımlayarak işe başlayalım.
Templates Dizini Oluşturma İşlemi
Projenizin Kök klasörü üzerinde sağ tıklayarak New Folder‘a tıklayın ve templates adında bir klasör oluşturun.

/templates klasörü altında tekrar New Folder tıklayıp temp_app (birebir aynı isimle olması önemli) bir klasör daha oluşturun. Daha sonra temp_app klasörüne sağ tıklayıp New File seçin ve first.html adında bir dosya oluşturun.
Proje klasörlerinin son hali aşağıdaki gibi olmasına özen gösterin.

Templates Klasöründe Html Sayfa Hazırlama
first.html içerisinde tag’leri yazarak web HTML sayfamızı hazırlayalım. Kısayol olarak sayfaya “doc” yazıp TAB-TAB yaparsanız boş bir Html şablonuna ait tag’ler otomatik olarak yazılacaktır.
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Main Page</title>
</head>
<body>
<h1>Hi WORLD!</h1>
<h2>First.html Test OK</h2>
</body>
</html>
templates/first.htmlBasit bir Html sayfası oluşturduk ancak bunu views.py dosyasında tanımlamamız gerekir.
from django.shortcuts import render
from django.http import HttpResponse
from django.urls import reverse
# Create your views here.
def index(request):
return render(request,"temp_app/first.html")
temp_app/views.pyTemplates Klasörünü Django’ya Tanıtma Yöntemleri
Bu Html sayfayı browser’dan çağırabilmek için Django’ya templates klasörünü tanımlamak gerekiyor.
Settings.py İçerisinde Tanımlama (Geçici Çözüm)
Bunun yollarından biri settings.py dosyası içerisinde TEMPLATES satırında tanımlamanız gerekecektir.
Bu tanımlamadan önce settings.py‘nin en başına OS (Operating System) kütüphanesi eklemek gerekecektir. Çünkü kullanıcıdan bağımsız dosya yolunu tanımlayabilmemiz gerekecektir. “DIRS” satırını aşağıdaki gibi değiştirin.
from pathlib import Path
import os
BASE_DIR = Path(__file__).resolve().parent.parent
TEMPLATES = [
{
"BACKEND": "django.template.backends.django.DjangoTemplates",
"DIRS": [os.path.join(BASE_DIR,"templates/")],
"APP_DIRS": True,
"OPTIONS": {
"context_processors": [
"django.template.context_processors.request",
"django.contrib.auth.context_processors.auth",
"django.contrib.messages.context_processors.messages",
],
settings.pyMigrate Yöntemi (Tavsiye Edilen Yöntem)
Çalışmakta olan Runserver’ı CTRL+C ile durdurun ve Terminalde;
python manage.py migrate
Terminalkomutunu çalıştırın. Bu komutun yaptığı iş modelleri ve benzer işlemleri uygulamaktır. Şu şekilde bir ekran çıkacaktır komutu çalıştırdığınızda.

Bu komuttan sonra uygulama klasörü altında __pycache__ ve migrations adında dizinler oluşacaktır.
setting.py içerisinde INSTALLED_APPS içerisinde aşağıdaki temp_app ile başlayan ilk satırı ekleyelim.
INSTALLED_APPS = [
"temp_app.apps.TempAppConfig",
"django.contrib.admin",
"django.contrib.auth",
"django.contrib.contenttypes",
"django.contrib.sessions",
"django.contrib.messages",
"django.contrib.staticfiles",
]
settings.pyBu satırı ekledikten sonra Terminal ekranında şu komutu çalıştırın:
python manage.py makemigrations temp_app
TerminalDaha önce oluşturduğumuz templates dizinini silelim ve settings.py içinde DIRS dizininde yaptığımız değişikliği de silelim.
app/views içerisinde şu fonksiyonu ekleyelim:
from django.shortcuts import render
from django.http import HttpResponse
from django.urls import reverse
# Create your views here.
def index(request):
return render(request,"temp_app/first.html")
temp_app/views.py- temp_app dizini üzerinde sağ tıklayıp New Folder ile templates adında bir dizin oluşturun.
- Bu dizinin içersine de uygulama klasörü ile aynı isim olan temp_app adını verin.
- Bu dizin içerisinde yine first.html adında bir dosya oluşturun.
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>New Html Page</title>
</head>
<body>
<h1>Hi world again!</h1>
<h2>This page test is OK!</h2>
</body>
</html>
temp_app/first.htmlTüm yaptıklarınızı kaydedin ve aşağıdaki kod ile sunucuyu çalıştırın.
python manage.py runserver
TerminalWeb Browser adres satırına http://localhost:8000/temp_app/ yazın ve enter’a basın. Karşınızda yeni web sayfamız:

Proje ne kadar büyük olursa olsun bu model ile uygulama ve web sayfalarınızı ekleyebilir, yönetebilirsiniz. En çok kullanacağımız yöntem bu yöntemdir.
Template Kullanarak Python ile Nasıl Web Sitesi Tasarlanır?
Buraya kadar tüm öğrendiğimiz bilgiler ışığında bir web sayfası içerisinde döviz bilgileri nasıl gösterilir senaryosu için biraz vakit ayıralım. Python ile template kullanarak web sayfası yapmak için ideal bir örnek olacak.
Öncelikle temp_app/currency.html adında bir dosya oluşturalım.
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>New Html Page</title>
</head>
<body>
<h1>Hi world again!</h1>
<h2>This page test is OK!</h2>
</body>
</html>
temp_app/currency.htmlDaha sonra views.py içerisinde gerekli tanımlamamızı aşağıdaki gibi yapalım.
from django.shortcuts import render
from django.http import HttpResponse
from django.urls import reverse
# Create your views here.
def index(request):
return render(request,"temp_app/first.html")
def currency(request):
return render(request,"temp_app/currency.html")
temp_app/views.pyBu işlemin akabinde temp_app/urls.py dosyası içinde virgül koyarak şu satırı ekleyin:
from django.urls import path
from . import views
urlpatterns = [
path("",views.index,name="index"),
path("currency/",views.currency,name="currency")
]
temp_app/urls.pySonuç olarak browser’da http://localhost:8000/temp_app/currency/ yazdığımızda aşağıdaki ekran açılacaktır.
