模板引擎語法-變量
文章目錄
- 模板引擎語法-變量
- (一)在Django框架模板中使用變量的代碼實例
- (二)在Django框架模板中使用變量對象屬性的代碼實例
- (三)在Django框架模板中使用變量顯示列表
(一)在Django框架模板中使用變量的代碼實例
1.創建項目
cd E:\Python\
django-admin.exe startproject TmplSite
2.在編程工具中打開此項目。
3.創建應用
django-admin.exe startapp gramapp
4.定義應用的視圖文件
文件路徑【TmplSite/gramapp/views.py】
from django.http import HttpResponse
from django.shortcuts import render
from django.template import loader# Create your views here.def index(request):return HttpResponse("Hello, Django! You're at the gramapp index.")def grammar(request):context = {}context['title'] = "Django Template Grammar"context['gram'] = "grammar"template = loader.get_template('gramapp/grammar.html')return HttpResponse(template.render(context, request))
【代碼分析】
代碼 | 分析 |
---|---|
context[‘title’] = "Django Template Grammar | 在變量context中添加了第一個屬性title,并進行了賦值 |
context[‘gram’] = “grammar” | 在變量context中添加了第二個屬性grm,并進行了賦值 |
template = loader.get_template(‘gramapp/grammar.html’) | 調用get_template()函數加載html模板,并保存在模板對象template中 |
return HttpResponse(template.render(context, request)) | 通過模板對象template調用了render()函數,將上下文對象context傳遞到html模板grammar.html中進行渲染 |
5.定義HTML模板的代碼實例
文件路徑【gramapp/templates/gramapp/grammar.html】
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><link rel="stylesheet" type="text/css" href="/static/css/mystyle.css"/><title>{{ title }}</title>
</head>
<body><p class="middle">Hello, this is a <b>{{ gram }}</b> page!
</p></body>
</html>
【代碼分析】
代碼 | 分析 |
---|---|
{{ title }} | 通過雙花括號({{}})引用了views.py中定義的第一個屬性{{title}} |
Hello, this is a {{ gram }} page! | 通過雙花括號({{}})引用了views.py中定義的第二個屬性{{gram}} |
6.定義路由文件
文件路徑【TmplSite/gramapp/urls.py】
from django.urls import path
from . import viewsurlpatterns = [path('', views.index, name='index'),path('gram/', views.grammar, name='grammar'),
]
文件路徑【TmplSite/TmplSite/urls.py】
from django.contrib import admin
from django.urls import include, pathurlpatterns = [path('gramapp/', include('gramapp.urls')),path('admin/', admin.site.urls),
]
7.定義項目根目錄的settings.py文件
INSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','gramapp.apps.GramappConfig', # 新增應用
]
8.打開FireFox瀏覽器訪問
【http://localhost:8000/gramapp/】
【http://localhost:8000/gramapp/gram/】
(二)在Django框架模板中使用變量對象屬性的代碼實例
1.編輯視圖文件
文件路徑【TmplSite/gramapp/views.py】
from django.http import HttpResponse
from django.shortcuts import render
from django.template import loader# Create your views here.def index(request):return HttpResponse("Hello, Django! You're at the gramapp index.")def grammar(request):context = {}context['title'] = "Django Template Grammar"context['gram'] = "grammar"context['author'] = {'first_name': 'King', 'last_name': 'Wang'} # 新增此行template = loader.get_template('gramapp/grammar.html')return HttpResponse(template.render(context, request))
【代碼分析】
代碼 | 分析 |
---|---|
context[‘author’] = {‘first_name’: ‘King’, ‘last_name’: ‘Wang’} | 在變量context中追加了一個屬性author,并賦值為一個字典類型 |
2.編輯HTML模板
文件路徑【TmplSite/gramapp/templates/grammar.html】
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><link rel="stylesheet" type="text/css" href="/static/css/mystyle.css"/><title>{{ title }}</title>
</head>
<body><p>Hello, this is a <b>{{ gram }}</b> page!
</p>
<p>Author: <b>{{ author.first_name }} {{ author.last_name }}</b>
</p></body>
</html>
【代碼分析】
代碼 | 分析 |
---|---|
Author: {{ author.first_name }} {{ author.last_name }} | 通過.引用視圖中定義的兩個屬性 |
3.打開FireFox瀏覽器訪問
【http://localhost:8000/gramapp/gram/】
(三)在Django框架模板中使用變量顯示列表
1.編輯視圖文件
文件路徑【TmplSite/gramapp/views.py】
from django.http import HttpResponse
from django.shortcuts import render
from django.template import loader# Create your views here.def index(request):return HttpResponse("Hello, Django! You're at the gramapp index.")def grammar(request):context = {}context['title'] = "Django Template Grammar"context['gram'] = "grammar"context['author'] = {'first_name': 'King', 'last_name': 'Wang'}context['languages'] = ['Python', 'Django', 'Jinja2'] # 新增此行template = loader.get_template('gramapp/grammar.html')return HttpResponse(template.render(context, request))
【代碼分析】
代碼 | 分析 |
---|---|
context[‘languages’] = [‘Python’, ‘Django’, ‘Jinja2’] | 在變量context中追加了一個屬性languages,并賦值為列表類型 |
2.編輯HTML模板
文件路徑【TmplSite/gramapp/templates/grammar.html】
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><link rel="stylesheet" type="text/css" href="/static/css/mystyle.css"/><title>{{ title }}</title>
</head>
<body><p>Hello, this is a <b>{{ gram }}</b> page!
</p>
<p>Author: <b>{{ author.first_name }} {{ author.last_name }}</b>
</p>
<p>Languages:<br><ul>{% for lang in languages %}<li>{{ lang }}</li>{% endfor %}</ul>
</p>
</body>
</html>
【代碼分析】
代碼 | 分析 |
---|---|
| 定義了一個
|
3.打開FireFox瀏覽器訪問
【http://localhost:8000/gramapp/gram/】