Flask'ta şablonları kullanma

İçindekiler
Bir web uygulaması, kullanıcının görebileceği bir parça gerektirir. görüş veya görünüm ve içinde yazılmış bir arayüzden oluşur HTML Bu, kullanıcının eriştiği yola göre statik ve dinamik verileri göstermemizi sağlar.
Gibi mikro çerçevelerle çalıştığımızda şişe, varsayılan olarak ek öğeleri kullanmak için görünümü görüntülemek gerekli değildir, yalnızca kodu döndürür HTML karşılık gelen tutarlı verileri göstermeyi başarabiliriz.
Sorun, uygulamamız büyümeye başladığında ve birkaç görüşümüz olduğunda ortaya çıkıyor, kodun tekrarı, uygulamamızı yeniden kullanabileceğimiz öğelerle dolduruyor ve bunu manuel olarak yapmanın bizim için daha büyük bir iş olduğunu gösteriyor. Bu sorunu önlemek için elimizdeki şablon motorları, dosyaları yeniden kullanmamıza yardım eden HTML ve böylece programımızın okunabilirliğini artırmanın yanı sıra kod miktarını da azaltın.
Jinja2 tamamen yazılmış bir şablon motorudur piton ve şablon motorundan sonra modellenmiştir. Django, bu, kod bölümlerini yerleştirmemize izin verir HTML ve motorun kendi koduyla, daha sonra uygulamamızdan alınan verilerle değiştirilecek etiketleri ekleyin.
Başka ne içeriyor?Ayrıca, koşulları, tarih işlevlerini ve şablonun davranışını basit ve anlamlı bir şekilde programlamamıza yardımcı olan diğer öğeleri işlemenin yanı sıra, aldığımız verileri biçimlendirmemize yardımcı olan kendi işlevlerini de içerir.
En son sürümünde şişe Bu motor kuruluma dahildir, bu nedenle kullanımı daha kolay ve hızlıdır.
içinde bir görünüm oluşturmayı tartışmıştık. şişe kodu yazdırmak kadar basitti HTML istenen yol işlevinde, ancak bu çerçevede yeni olanlar için bu çok kafa karıştırıcı gelebilir.
Aşağıdaki örnekte bir parametre alacağımız ve sonucu yazdıracağımız bir view oluşturacağız, ilginç olan bu parametrenin kullanıcı tarafından girilebilmesi yani view belli bir noktaya kadar dinamik, bakalım kodu ve ardından açıklamaya geçeceğiz:
 şişeden import Flaskapp = Flask (__ isim __) @ app.route ('/') @ app.route ('/ hoşgeldiniz') @ app.route ('/ hoşgeldiniz /') def hoş geldiniz (isim = Yok): isim = isim veya 'Kullanıcı' dönüşü '' 'Hoş Geldiniz!

Bu, Flask'ta yapılan görüşümüz!

'' '% ifname __name__ ==' __main__ ': app.run ()
Burada yaptığımız çok basit bir şey, önce aşağıdakileri içeren kütüphaneleri içe aktarıyoruz. çerçeve, ardından üç anahtar yol tanımlarız, hepsi bizi karşılama adı verilen aynı işleve götürür ve alınmazsa program içinde yoksayılacağı isteğe bağlı bir parametre alır.
Sonra fonksiyonda talimatımızı yaratırız geri dönmek ve burada belirtiyoruz ki bir Sicim içeren HTML görünüm için. Bu programı test edersek, tarayıcıda kabul edilebilir bir sonuç elde edeceğiz, bakalım:

Birçoğu bunun çok işlevsel olduğunu söyleyebilir, ancak bu boş sayfayı göstermek yerine CSS stillerini, JavaScript efektlerini veya diğer şeyleri entegre etmek istersek ne olur? O zaman HTML'miz daha fazla kod alacak ve bu nedenle her şey aşırı derecede karmaşık olacak ve uygulamamızı cehenneme çevirecekti.
Şimdi aynı görünümü oluşturacağız, ancak öğreticinin başında tanımladığımız şablon motorunu kullanarak, örneğe ulaşmak için bazı hazırlıklar yapmalıyız, bunlar projemizin yapısıyla ilgili, çünkü eğer şablon dosyalarını kullanacaksak, onları uygulamadan diğer klasörlere ayırmak ve böylece görsel katmanımızı iş kuralları ve mantık katmanından ayırmak en iyisidir.
Bunu bilerek, şablonlarımız için bir klasör oluşturmalıyız, geleneksel amaçlar için buna şablon diyeceğiz, ancak başka şeylere de sahip olmalıyız, örneğin modül görevi görecek bir klasörümüz olmalı ve onu adıyla çağıracağız. Bunun yanında bazı dosyalara sahip olmamız gerekiyor, bir sonraki resimde tüm yapıyı göreceğiz ve ardından her şeyin çalışması için ilgili koda gideceğiz.

Dosya içeriğiŞablonun oluşturulmasına ve kullanılmasına geçmeden önce uygulamamızın sorunsuz çalışmasını sağlayacak dosyaların içeriğini görmemiz gerekiyor, çok fazla zaman kaybetmemek için her bir dosyayı kısaca göreceğiz. Bununla birlikte, bunun önerilen bir yapı olduğuna dikkat etmek önemlidir. şişe her geliştiricinin amacına göre kendisine en uygun yapıyı yapmasına izin verir.
Bu dosya, uygulamayı çalıştırmamıza izin veren dosyadır, dolayısıyla adı, genellikle çağrılabilir. run.py Ayrıca, ancak bu eğitimin amaçları doğrultusunda İspanyolca konuşan topluluk tarafından daha anlaşılır bir ad koyduk, buraya aşağıdaki kodu yerleştirmeliyiz:
 flasko import appapp.run'dan (debug = True)

Bu, uygulamanın kökünde bulunan dosyadır, yürütüleceğini ve bağımlılıklarını belirleyebilmek gerekir, bu dosyada dosyanın kullanılacağını da tanımladığımız yer burasıdır. görünümler.py Daha önce gördüğümüz karşılama klasörünün herhangi bir adı olabilir, ancak görünümler.py Dostane bir uygulamayı sürdürmemize yardımcı olacak bir sözleşmedir, buraya aşağıdakileri yerleştirmeliyiz:
 flasktan import Flaskapp = Flask (__ name __) import flasko.bienvenido.views

Bu dosya boş olmalıdır, çünkü sadece var olmasına ihtiyacımız var. şişe Bu klasörün uygulamamızın bir modülü olduğunu yorumlayın.
Uygulamamız için temel dosyalara sahip olduğumuz için, görünümü oluşturma ve şablonu kullanma zamanı geldi. Yapacağımız ilk şey görünümümüzü oluşturmak, bu önceki görünüme çok benzer ancak geliştirilmiş olacak, bunun için dosyada çalışmalıyız. görünümler.py ve aşağıdakileri yerleştirin:
 şişeden import render_template, requestfrom flasko import [email protected] ('/') @ app.route ('/ hoşgeldiniz') def Welcome_web (): name = request.args.get ('name', 'User') return render_template ('index.html', isim = isim)
Yaptığımız ilk şey, şablonları göstermemize izin veren kitaplığı ve tarayıcı isteklerini işlemek için bir kitaplığı çerçeveden içe aktarmaktır.
Sonra bu görünümün görünmesini sağlayacak rotaları tanımlarız, bu durumda kök / ve ayrıca kelime yerleştirildiğinde Hoş geldin.
Sonunda fonksiyonumuzu tanımlıyoruz Hoş geldin bu, tarayıcı isteğinden elde edilen parametreleri değişken adına atar ve ardından işlevin bir dönüşünü yaparız. render_template, bu şablonu çağıracak ve değişken adını parametre olarak iletecek olandır, burada şablonun adını da belirtiriz.
Şablonu oluşturma zamanı geldi, bu temelde içeriği olan bir dosyadır. HTML ve ona dinamizm kazandırmamıza yardımcı olacak bazı etiketlerle birlikte, değiştirilecek dosya index.html klasörde olan şablonlar, kullanacağımız kodu görelim:
 Hoş geldiniz {{name}}

Flask kullanıyoruz!

Bu kod basit, biz HTML basic ve ardından oluşturulan içeriğin görünümde görünmesini istediğimiz yere çift parantez yerleştiririz {{}} ve içinde, parametrenin adı, bu, uygulama yürütüldüğünde, bu değerin istediğimiz içerikle değiştirildiği anlamına gelir. Aşağıdaki resimde görürsek, URL üzerinden parametre olarak ilettiğimiz ismin nasıl yerleştirildiğini anlayacağız:

Sadece parametreleri kullanmakla kalmaz, aynı zamanda sözlükler de oluşturabiliriz. piton gibi bir kalıcılık kaynağından gelen verilerle Veri tabanı veya benzer bir şey ve bu şekilde daha fazla veri yerleştirebilmek için.
Farklı şablonlarBu konuyla ilgili ilginç olan şey, uygulamamızın farklı bölümleri için farklı şablonlarla oynayabilmemizdir, bu, saf sunum katmanını gerçekte programladığımızdan ayırır. HTML Ortadan iki takıma ayrılabilir ve böylece kafa karışıklığı olmadan düzgün çalışabiliriz.
Bununla bu öğreticiyi bitiriyoruz, şablonları ile yapılan uygulamalarda kullanmayı öğrendik. şişe, bu çalışma şekli, özellikle resmi belgelerine güveniyorsak, bizi çabadan ve kod tekrarından kurtaracaktır. Jinja2 şablon motorundan en iyi şekilde yararlanmak için. Bir proje yapısı oluşturmak ve farklı dosya türlerini ayırmak çok önemlidir, çünkü bu şekilde geliştirme ekibimizin geri kalanı için veya onu aşağıdaki gibi bir kod ağına yüklemek istediğimizde dostça bir proje sürdüreceğiz. Yapılan çalışmaları toplulukla paylaşmak için GitHub.

Arkadaşlarınızla sayfasını paylaşan sitenin gelişimine yardımcı olacak

wave wave wave wave wave