/ Python / 👁 744 Okunma

Flask HTML Sayfa Oluşturma ve HTML İçinde Python Kullanma

Önceki yazımızda sayfa yönlendirmelerimizi (route) hazırlayarak sayfa bağlantılarımızı oluşturmuştuk ve sayfalara basit mesajlar girmiştik. Şimdi ise sayfalarımıza HTML temalarımızı ve içeriklerimizi nasıl gireceğimizi öğrenmenin zamanı geldi!

Bir web sayfası oluştururken önemli olan HTML kodlarımızı rahatlıkla yönetebilmemizdir. Birçok hazır web site servisinde size verilen birkaç blok dışında işlem yapmanız ya çok zor yada imkansızdır. Geçen derste ise sadece sayfalarımıza return ile mesajlar gönderdikten sonra bazı arkadaşlar HTML kodlarını yazamayacaklarını düşünerek korkmuş olabilirler. Ama strese hiç gerek kalmadan özgürce kodlarınızı nasıl yapacağınızı hemen görelim.

İlk olarak index.py dosyanızın olduğu dizinde templates isimli klasör oluşturun. Ardından HTML sayfalarınızı bu klasöre koyun. Örneğin iletisim.html,hakkimizda.html gibi sayfalarınızı bu klasöre koyun.

893x365

Bu klasör içinde alt klasörler oluşturarak HTML dosyalarınızı bölümlere ayırabilirsiniz (musteripaneli, yonetim, alanlar vs). Ama unutmayın ki ana klasörün adı templates olmak zorunda! Buna dikkat ettikten sonra sıradaki safhaya geçelim.

Artık sayfalarımız hazır olduğuna göre (HTML temalarınızı hazırladığınızı varsayıyorum) yönlendirmelerimizi sadece bir mesajla değilde ilgili HTML dosyasını göstererek yapabiliriz. Bunun için route kodunuz şu şekilde olmalıdır:

# Hakkımızda Sayfası
@app.route('/hakkimizda')
def hakkimizda():
   return render_template("hakkimizda.html")

Örnekte göreceğiniz üzere render_template fonksiyonu ile route'a ilgili sayfaya gidildiğinde hangi dosyanın yükleneceğini gösterebiliyoruz. Ne kadar kolay değil mi :)

Peki yüklenecek sayfaya değişken gönderebilir miyiz? Örneğin ben title isimli bir değişken göndererek HTML sayfasının içinde title meta etiketini otomatik oluşturmak ve sayfaya id değeri vermek için ayriyeten bir değişken daha göndermek istiyorum. Bunun için de fonksiyonumuzda direkt değişkeni belirleyerek gönderebilirsiniz:

# Hakkımızda Sayfası
@app.route('/hakkimizda')
def hakkimizda():
     id = 3
   return render_template("hakkimizda.html", sayfabasligi="Hakkımızda Sayfası", sayfaid = id)

Yukarıda gördüğünüz gibi iki şekilde de değişkenlerinizi HTML sayfalarınıza taşıyabilirsiniz. Peki bu taşıdığınız değişkenleri nasıl göstereceksiniz? Bunun için de hemen alttaki HTML sayfasını inceleyin:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>{{ sayfabasligi }}</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
    Merhaba, burası {{ sayfabasligi }} ve sayfa numarası {{ sayfaid }} dir
</body>
</html>

Gönderdiğimiz değişkenleri {{ }} blokları arasına almamız ile Python değişkenlerimizi HTML sayfalarımıza taşımış olduk. İşte gördüğünüz üzere HTML içinde Python komutları kullanmak ve Flask ile olabildiğince esnek sayfalar oluşturmak işte bu kadar kolay.

Umarım faydalı bir ders olmuştur. Bunun dışında kafanıza takılan soruları aşağıdan yorum bırabilirsiniz. Bir sonraki dersimizde görüşmek üzere sağlıacakla kalın.