記錄view檢視從最簡單的邏輯實現出發,慢慢的變為使用更多封裝,和更多功能的模組。
)很簡單,只是單純的返回乙個http
的response就行了。這個函式中用到了什麼?他又返回了什麼?
使用乙個request
例項做引數:request包含了很多http
請求的資訊,他以類似字典的方式取用資料。他必須是試圖函式的第乙個引數。
返回了乙個httpresponse
例項:對我們要返回的內容進行了http
的封裝。
要使乙個函式成為檢視函式,需要滿足上面這兩個條件。但是也不是必須的。
"% now # 構造了一段html的響應
return httpresponse(html)上面這個view
函式就將返回純文字的內容轉變成了返回帶有html
標記的東西了。
那每次都這樣手寫html
標記?肯定是不合適的。
def
current_datatime
(request)
:"""展示當前時間"""
now = datetime.datetime.now(
) fp =
open
('/home/djangouser/template/mytemplate.html'
) t = template.template(fp.read())
fp.close(
) html = t.render(template.context())
return httpresponse(html)
使用open開啟檔案然後再渲染顯得有些low,而且這些**是重複的,可以對它進行封裝。
django當然是提供了相應的api
的,但是首先要告訴程式我們的模板放在哪。setting.py
中的template_dirs
正是這個功能。template_dirs
接受乙個元組。其中存放模板位置的位址。
模板
it is now }.
當編寫好模板**,並且設定好路徑後,就可以將view函式進行改造了
# 填充,渲染一起完成
return httpresponse(html)get_template返回的是template物件。我們簡化了**,但是還不夠簡潔,因為還是分了三步。使用乙個函式來完成所有事情是最簡單的。
隆重推出 render_to_response
from django.shortcuts import render_to_response
import datetime
defcurrent_datetime
(request)
: now = datetime.datetime.now(
)return render_to_response(
'current_datetime.html'
,)
render_to_response第乙個引數是模板檔案,第二個引數是要渲染的資料。
當然,當然,如果你連字典也不想寫,可以這樣。
def
current_datetime
(request)
: current_date = datetime.datetime.now(
)return render_to_response(
'current_datetime.html'
,locals()
)
C 之函式的公升級(上)
函式預設引數 函式佔位引數 c 中的const常量可以替代巨集常數定義,如 const int a 3 define a 3 c 中是否有解決方案替代巨集 片段呢?內聯函式 替代巨集 片段就可以避免巨集的 c 中推薦使用內聯函式替代巨集 片段 c 中使用inline關鍵字宣告內聯函式 include...
函式練習 公升級小公舉
include include gzdemo.h using namespace std intmain ifndef gzdemo h included define gzdemo h included 使用函式公升級 小公主養成記 中的基本屬性錄入及排序功能 基本屬性 體力 智力 魅力 道德 氣...
L6 6 函式公升級
上節課我們學習了函式的引數,學習了四種傳參方式,分別是位置引數 預設引數 可變引數和關鍵字引數。在函式內部,可以呼叫其他函式。如果乙個函式在內部呼叫自身,這個函式就是遞迴函式。def foo num print num if num 1 return foo num 1 print num,foo ...