• Buradasın

    Django ile HTML'den PDF Oluşturma Eğitimi

    youtube.com/watch?v=S9Za1YyreoQ

    Yapay zekadan makale özeti

    • Bu video, bir eğitmen tarafından sunulan Django framework kullanarak HTML'den PDF oluşturma konulu kapsamlı bir eğitim içeriğidir.
    • Video, HTML'den PDF oluşturma için kullanılan farklı kütüphanelerin (ReportLab, xhtml2pdf, pdfkit) karşılaştırmasıyla başlayıp, Bootstrap kullanarak basit bir form ve index sayfası oluşturma, Django app oluşturma, model tanımlama ve view'lar yazma sürecini adım adım göstermektedir. Eğitmen, dört farklı view (index, form, render to cv ve indir) oluşturarak, kullanıcıdan alınan verileri veritabanına kaydetme ve bu verileri PDF formatında sunma sürecini detaylı şekilde anlatmaktadır.
    • Eğitim içeriğinde ayrıca response header'ları ayarlayarak PDF dosyası oluşturma, view'lar oluşturma, context kullanımı, HTML template'leri, PDF'ye resim ekleme, CSS stil dosyalarını entegre etme ve PDF Kit kütüphanesi kullanarak CSS dosyalarını PDF'ye aktarma gibi konular da ele alınmaktadır. Video, pratik bir uygulama üzerinden ilerlemekte ve izleyicilere kod örnekleri sunmaktadır.
    00:01HTML2PDF Kütüphanesi Tanıtımı
    • Video, HTML2PDF konusunu anlatmayı hedefliyor ve Django'nun kendi dokümantasyonundaki ReportLab kütüphanesinin kolay olmadığını belirtiyor.
    • XHTML2PDF kütüphanesi daha kolay olsa da CSS'leri çekerken sıkıntı yaşanıyor.
    • PDFKit adlı kütüphane ve W2HTMLPDF uygulaması ile çalışabiliyor.
    00:47Uygulama Tasarımı
    • Front-end yeteneksizliği nedeniyle Bootstrap kullanarak ufak bir form ve index sayfası hazırlanıyor.
    • Dinamik olarak oluşturulan instance'ın datalarıyla render edilecek bir CV tasarımı yapılacak.
    • Dört tip view olacak: indeks (listeye döndürme), form view (model kayıt), göster (HTML dosyasını render etme) ve indir (PDF verme).
    01:38Django Ayarları ve App Oluşturma
    • Settings.py içerisinde temprace klasörün yolunu belirleyip statik ve midye yöreleri set ediliyor.
    • Python manage.py startapp komutu ile "hesap" adında bir app oluşturuluyor.
    • App'i tanıtmak için install_apps kısmında config.py class'ı ekleniyor.
    02:46Model Oluşturma
    • Hesap adında bir model tanımlanıyor ve isim, email, telefon, unvan, özet ve resim field'ları ekleniyor.
    • Image field için Pillow modülünün sanal ortama kurulması gerekiyor.
    • Python manage.py makemigrations ve python manage.py migrate komutları ile değişiklikler veritabanına kaydediliyor.
    04:45Index View Oluşturma
    • Index view'ında hesap modeli sayfaya dahil ediliyor.
    • Tüm hesaplar alınarak context'e gönderiliyor ve render ediliyor.
    • Index.html dosyasında for döngüsü ile her hesap için table row oluşturuluyor ve hesap oluşturulmamışsa "Henüz hesap oluşturulmadı" mesajı gösteriliyor.
    07:30URL Yapılandırması
    • Views'ı PDF generator urls altından çağırarak root URL'e index view'ı atanıyor.
    • Ana sayfa açıldığında "Henüz hesap oluşturulmadı" mesajı görüntüleniyor.
    • Form view'ı oluşturuluyor ve POST istekleri için dekoratör kullanılıyor.
    09:46Form View ve Kayıt İşlemi
    • Form view'ında gelen istek parametreleri yakalanarak yeni bir hesap modeli oluşturuluyor.
    • Kayıt işlemi yapıldıktan sonra veritabanına kaydediliyor ve index view'ına redirect yapılıyor.
    • Form action'ı kayıt view'ına ayarlanıyor ve CSRF token ekleniyor.
    13:32Django'da View Oluşturma
    • "göster" adında bir view oluşturuluyor ve bu view bir request ve bir adet PK parametresi alacak.
    • GetObjectOrDefault fonksiyonu kullanılarak ilgili profilin verileri alınacak ve context'e aktarılacak.
    • View'da context'ten gelen hesap bilgileri (isim, ünvan, e-mail, telefon numarası) kullanılarak HTML içeriği oluşturulacak.
    18:08Form Hatası ve Çözümü
    • Kayıt işlemi sırasında resim dosyası yollanırken formun multipart form data olarak işaretlenmesi gerekiyor.
    • Formda resim dosyası yollandığında "name" ve "file" parametreleri unutulmamalı.
    • Kayıt işlemi tamamlandıktan sonra "göster" butonuna tıklandığında ilgili profil bilgileri görüntüleniyor.
    19:21PDF Oluşturma İçin Gerekli Kurulumlar
    • PDFKit kütüphanesi sanal ortama kuruluyor.
    • Windows kullanıcıları için "w2 html to pdf" adlı uygulama kurulup, bin klasörü altındaki xme uzantılı dosya ortam değişkenlerine eklenmeli.
    • PDF oluşturma için "http.newport_loader", "http.response" ve "pdfkit" kütüphaneleri projeye dahil edilmeli.
    21:16PDF Oluşturma İşlemi
    • "pdf_generate" adında bir view oluşturuluyor ve buradan gelen profil bilgileri yakalanıyor.
    • HTML içeriği render ediliyor ve PDFKit kütüphanesi için gerekli seçenekler (add_size, encoding) belirleniyor.
    • Oluşturulan PDF bellekte saklanıyor ve HTTP response objesi oluşturulup content type ve content disposition ayarlanıyor.
    24:55Django'da PDF Oluşturma ve Dosya Ekleme
    • Response content disposition header'ı set edilerek dosya ekleneceği belirtiliyor.
    • Attachment ve dosya adı (file name) belirleniyor, örneğin CV PDF.
    • Response kullanıcıya döndürülerek PDF ekleniyor.
    25:28View Oluşturma ve PDF Gösterme
    • PDF generate view'ı oluşturuluyor ve adı CV olarak belirleniyor.
    • Table kısmında ilgili veriye ve daire için yönlendirme yapılıyor.
    • View'a aynı HTML kullanılıyor ancak ufak bir değişiklik yapılacak.
    26:19PDF İndirme ve Resim Sorunu
    • Online CV generator ile PDF indirildiğinde resim gözükmediği fark ediliyor.
    • Resim sorununun sebebi, URL yerine dosyanın tam yolunun (path) verilmesi gerektiği.
    • Dosya path'i verildiğinde resim sağ tarafta beliriyor.
    27:52Statik Dosyalar ve CSS Sorunu
    • CV'nin içerisinde bütün stillerin tepede yazıldığı belirtiliyor.
    • Statik dosyalar için yeni bir stil dosyası oluşturuluyor.
    • Statik dosyaları çağırmak için link etiketi kullanılıyor ancak CSS'ler gelmiyor.
    29:35PDF Kit ile CSS Çözümü
    • PDF Kit'in CSS opsiyonu kullanılarak render edilen HTML dosyasının CSS'leri set ediliyor.
    • Collect static komutu ile statik dosyalar toplanıyor.
    • CSS listesi set edildikten sonra PDF açıldığında stillerin geldiği görülüyor.

    Yanıtı değerlendir

  • Yazeka sinir ağı makaleleri veya videoları özetliyor