Movatterモバイル変換


[0]ホーム

URL:


Ana içeriğe geç
Join theFastAPI Cloud waiting list 🚀
Follow@fastapi onX (Twitter) to stay updated
FollowFastAPI onLinkedIn to stay updated
Subscribe to theFastAPI and friends newsletter 🎉
sponsor
sponsor
sponsor
sponsor
sponsor
sponsor
sponsor
sponsor
sponsor
sponsor
sponsor

Şablonlar

🌐 Yapay Zekâ ve İnsanlar Tarafından Çeviri

Bu çeviri, insanlar tarafından yönlendirilen bir yapay zekâ ile oluşturuldu. 🤝

Orijinal anlamın yanlış anlaşılması ya da kulağa doğal gelmeme gibi hatalar içerebilir. 🤖

Yapay zekâ LLM'ini daha iyi yönlendirmemize yardımcı olarak bu çeviriyi iyileştirebilirsiniz.

İngilizce sürüm

FastAPI ile istediğiniz herhangi bir template engine'i kullanabilirsiniz.

Yaygın bir tercih, Flask ve diğer araçların da kullandığı Jinja2'dir.

Bunu kolayca yapılandırmak için, doğrudanFastAPI uygulamanızda kullanabileceğiniz yardımcı araçlar vardır (Starlette tarafından sağlanır).

Bağımlılıkları Yükleme

Birvirtual environment oluşturduğunuzdan, etkinleştirdiğinizden vejinja2'yi yüklediğinizden emin olun:

$pipinstalljinja2---> 100%

Jinja2Templates Kullanımı

  • Jinja2Templates'ı içe aktarın.
  • Daha sonra tekrar kullanabileceğiniz birtemplates nesnesi oluşturun.
  • Template döndürecekpath operation içinde birRequest parametresi tanımlayın.
  • Oluşturduğunuztemplates nesnesini kullanarak birTemplateResponse render edip döndürün; template'in adını, request nesnesini ve Jinja2 template'i içinde kullanılacak anahtar-değer çiftlerini içeren bir "context" sözlüğünü (dict) iletin.
fromfastapiimportFastAPI,Requestfromfastapi.responsesimportHTMLResponsefromfastapi.staticfilesimportStaticFilesfromfastapi.templatingimportJinja2Templatesapp=FastAPI()app.mount("/static",StaticFiles(directory="static"),name="static")templates=Jinja2Templates(directory="templates")@app.get("/items/{id}",response_class=HTMLResponse)asyncdefread_item(request:Request,id:str):returntemplates.TemplateResponse(request=request,name="item.html",context={"id":id})

Note

FastAPI 0.108.0 ve Starlette 0.29.0 öncesinde, ilk parametrename idi.

Ayrıca, daha önceki sürümlerderequest nesnesi, Jinja2 için context içindeki anahtar-değer çiftlerinin bir parçası olarak geçirilirdi.

Tip

response_class=HTMLResponse olarak tanımlarsanız doküman arayüzü (docs UI) response'un HTML olacağını anlayabilir.

Teknik Detaylar

from starlette.templating import Jinja2Templates da kullanabilirsiniz.

FastAPI, geliştirici için kolaylık olması adınastarlette.templating içeriğinifastapi.templating olarak da sunar. Ancak mevcut response'ların çoğu doğrudan Starlette'ten gelir.Request veStaticFiles için de aynı durum geçerlidir.

Template Yazma

Ardından örneğintemplates/item.html konumunda bir template yazabilirsiniz:

<html><head>    <title>Item Details</title>    <link href="{{url_for('static',path='/styles.css')}}" rel="stylesheet"></head><body>    <h1><a href="{{url_for('read_item',id=id)}}">Item ID:{{id}}</a></h1></body></html>

Template Context Değerleri

Şu HTML içeriğinde:

Item ID:{{id}}

...gösterilecek olanid, sizin "context" olarak ilettiğinizdict içinden alınır:

{"id":id}

Örneğin ID değeri42 ise, şu şekilde render edilir:

Item ID: 42

Templateurl_for Argümanları

Template içindeurl_for() da kullanabilirsiniz; argüman olarak,path operation function'ınızın kullandığı argümanların aynısını alır.

Dolayısıyla şu bölüm:

<a href="{{url_for('read_item',id=id)}}">

...path operation function olanread_item(id=id) tarafından handle edilecek URL'nin aynısına bir link üretir.

Örneğin ID değeri42 ise, şu şekilde render edilir:

<ahref="/items/42">

Template'ler ve statik dosyalar

Template içindeurl_for() kullanabilir ve örneğinname="static" ile mount ettiğinizStaticFiles ile birlikte kullanabilirsiniz.

<html><head>    <title>Item Details</title>    <link href="{{url_for('static',path='/styles.css')}}" rel="stylesheet"></head><body>    <h1><a href="{{url_for('read_item',id=id)}}">Item ID:{{id}}</a></h1></body></html>

Bu örnekte, şu şekildestatic/styles.css konumundaki bir CSS dosyasına link verir:

h1{color:green;}

VeStaticFiles kullandığınız için, bu CSS dosyasıFastAPI uygulamanız tarafından/static/styles.css URL'sinde otomatik olarak servis edilir.

Daha fazla detay

Template'leri nasıl test edeceğiniz dahil daha fazla detay içinStarlette'in template dokümantasyonuna bakın.


[8]ページ先頭

©2009-2026 Movatter.jp