Djangoにおけるレンダリングとは、Webアプリケーションのバックエンドで生成されたデータを、HTMLテンプレートに埋め込んでクライアントに送信する処理のことを指します。以下のような流れで行われます。
1. クライアントからのリクエストを受け取る
2. Djangoのビュー関数で必要なデータを取得・加工する
- データベースからのデータ取得
- ユーザー入力のバリデーション
- データの計算や加工
3. テンプレートエンジンを使ってHTMLテンプレートにデータを埋め込む
- テンプレート変数の展開
- テンプレートタグによる制御構文(if、for文など)の実行
- フィルタによるデータの書式設定
4. レンダリングされたHTMLをHTTPレスポンスとしてクライアントに送信する
Djangoのテンプレートエンジンは、デフォルトではDjangoテンプレート言語(DTL)を使用します。DTLは、Pythonに似た構文を持ち、変数展開、制御構文、フィルタなどの機能を提供します。
```python
from django.shortcuts import render
def my_view(request):
context = {
'name': 'Alice',
'items': ['Apple', 'Banana', 'Orange'],
}
return render(request, 'my_template.html', context)
```
```html
<h1>Hello, {{ name }}!</h1>
<ul>
{% for item in items %}
<li>{{ item }}</li>
{% endfor %}
</ul>
```
上記の例では、ビュー関数 `my_view` でコンテキストデータを定義し、`render` 関数でテンプレート `my_template.html` にデータを埋め込んでレンダリングしています。テンプレートでは、変数の展開や `for` ループを使ってデータを表示しています。
Djangoのレンダリングは、Webアプリケーションの表示部分を柔軟かつ効率的に生成するための強力な機能です。テンプレートの継承やインクルードなども活用することで、コードの重複を減らし、メンテナンス性を高めることができます。