Django框架學習---入門-模版(1.6)
模板
問題
如何向請求者返回一個漂亮的頁面呢?
肯定需要用到html、css,如果想要更炫的效果還要加入js,問題來了,這么一堆字段串全都寫到視圖中,作為HttpResponse()的參數嗎?這樣定義就太麻煩了吧,因為定義字符串是不會出任何效果和錯誤的,如果有一個專門定義前端頁面的地方就好了。
解決問題的技術來了:模板。
在Django中,將前端的內容定義在模板中,然后再把模板交給視圖調用,各種漂亮、炫酷的效果就出現了。
創建模板
為應用booktest下的視圖index創建模板index.html,目錄結構如下圖:
設置查找模板的路徑:打開test1/settings.py文件,設置TEMPLATES的DIRS值
'DIRS': [os.path.join(BASE_DIR, 'templates')],
定義模板
打開templtes/booktest/index.html文件,定義代碼如下:
<html>
<head>
<title>圖書列表</title>
</head>
<body>
<h1>{{title}}</h1>
{%for i in list%}
{{i}}<br>
{%endfor%}
</body>
</html>
在模板中輸出變量語法如下,變量可能是從視圖中傳遞過來的,也可能是在模板中定義的。
{{變量名}}
在模板中編寫代碼段語法如下:
{%代碼段%}
視圖調用模板
調用模板分為三步驟:
- 1.找到模板
- 2.定義上下文
- 3.渲染模板
打開booktst/views.py文件,調用上面定義的模板文件
from django.http import HttpResponse
from django.template import loader,RequestContext
def index(request):
# 1.獲取模板
template=loader.get_template('booktest/index.html')
# 2.定義上下文
context=RequestContext(request,{'title':'圖書列表','list':range(10)})
# 3.渲染模板
return HttpResponse(template.render(context))
打開瀏覽器刷新頁面,顯示效果如下圖:
視圖調用模板簡寫
視圖調用模板都要執行以上三部分,于是Django提供了一個函數render封裝了以上代碼。 方法render包含3個參數:
- 第一個參數為request對象
- 第二個參數為模板文件路徑
- 第三個參數為字典,表示向模板中傳遞的上下文數據
打開booktst/views.py文件,調用render的代碼如下:
from django.shortcuts import render
def index(request):
context={'title':'圖書列表','list':range(10)}
return render(request,'booktest/index.html',context)
智能推薦
Django框架入門
1.2 模式簡介 1.2.1 安裝pycham專業版 優點: 專業版功能強大、提示功能; 缺點: **;(1)試用:1個月,**碼(2)** 注意事項: (1)安裝時,不要安裝中文路徑下,選擇32位 (2)需要**碼。 1.2.2 MVC模式 特點: 可以讓不同的開發人員,一起參與到項目設計。大大提高效率 概念: MVC 全名是 Model View Controller,是模型(model)-視...
Django入門課程--基于python(三)使用模版
太長不看版: 1、在應用中創建一個模版文件夾(名字叫templates),然后在此文件夾下新增要訪問的html文件 2、html文件可自行美化 3、重新定義應用sign下的views.py中定義的index函數,讓其將index.html作為請求對象的返回值返回給客戶端。 重構,通過HTML頁面來替代“Hello Django”。 在應用sign/目錄下創建template...
Django(Python Web框架)學習(二)快速入門
Django(Python Web框架)學習(二)快速入門 一、Django框架介紹 1、什么是框架? 軟件框架就是為實現或完成某種軟件開發時,提供了一些基礎的軟件產品 框架的功能類似于 基礎設施 ,提供并實現最為 基礎的軟件架構和體系 通常情況下我們依據框架來實現更為復雜的業務程序開發 二個字,框架就是程序的 骨架 2、Python 中常見的框架有哪些? 大包大攬 Dj...
Python web模版Django-21 模版學習知識準備-html-3 body常用標簽
body常用標簽比較多,接著上一篇筆記: 多行文本框 form表單: 在form表單中加入"submit" input,可以將客戶的輸入,比如text, password, 選項用get 或 post發到服務器。 但這些text, password, 選項包括"submit”本身需要在同一個<form></form>下。 label...
Django框架學習2
1.新建一個應用(app) 一個django項目可以包含多個app,同樣在manage.py目錄下輸入命令: 新建應用后,一定要在setting.py腳本里面,把剛才新建的應用名稱添加到INSTALLED_APPS里 新建的 app 如果不加到 INSTALL_APPS 中的話, django 就不能自動找到app中的模板文件(app-name/templates/下的文件)和靜態文件(app-n...
猜你喜歡
django框架學習一
新建django項目步驟 1.在pycharm中創建django項目 2.創建app應用(tools->run manage.py task->輸入startapp 名字) 初識urls.py與views.py urls.py url配置文件,即每個網頁對應的地址(對應是views里面的index) url配置格式: 詳細可以參考https://www.cnblogs.com/hsku...
Django框架學習3
1.創建用戶,登錄admin后臺 在manage.py目錄下執行cmd 命令 訪問admin后臺,1.啟動服務器 ,python3 manage.py runserver 2.url.py中添加 規則 path('admin/', admin.site.urls),已有admin規則的可以忽略 3.訪問http://127.0.0.1:8000/admin 登錄剛才創建的賬號密碼即可。...
freemarker + ItextRender 根據模板生成PDF文件
1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...
電腦空間不夠了?教你一個小秒招快速清理 Docker 占用的磁盤空間!
Docker 很占用空間,每當我們運行容器、拉取鏡像、部署應用、構建自己的鏡像時,我們的磁盤空間會被大量占用。 如果你也被這個問題所困擾,咱們就一起看一下 Docker 是如何使用磁盤空間的,以及如何回收。 docker 占用的空間可以通過下面的命令查看: TYPE 列出了docker 使用磁盤的 4 種類型: Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構建的。 Con...