Django22-檢視、上下文、中介軟體
有時候我們想讓一些內容在多個模板中都要有,比如導航內容,我們又不想每個檢視函式都寫一次這些變數內容,怎麼辦呢?
這時候就可以用 Django 上下文渲染器來解決。
一,初識上下文渲染器
我們從檢視函式說起,在 views.py 中返回字典在模板中使用:
1 2 3 4 |
from django.shortcuts import render
def home(request):
return render(request, 'home.html' , { 'info' : 'Welcome to ziqiangxuetang.com !' })
|
這樣我們就可以在模板中使用 info 這個變量了。
1 |
{{ info }}
|
模板對應的地方就會顯示:Welcome to ziqiangxuetang.com !
但是如果我們有一個變數,比如使用者的IP,想顯示在網站的每個網頁上。再比如顯示一些導航資訊在每個網頁上,該怎麼做呢?
一種方法是用死程式碼,直接把欄目固定寫在 模組中,這個對於不經常變動的來說也是一個辦法,簡單高效。
但是像使用者IP這樣的因人而異的,或者經常變動的,就不得不想一個更好的解決辦法了。
由於上下文渲染器API在Django 1.8 時發生了變化,被移動到了 tempate 資料夾下,所以講解的時候分兩種,一種是 Django 1.8 及以後的,和Django 1.7及以前的。
我們來看Django官方自帶的小例子:
Django 1.8 版本:
1 2 |
def request(request):
return { 'request' : request}
|
在settings.py 中:
Django 1.8 版本 settings.py:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
TEMPLATES = [
{
'BACKEND' : 'django.template.backends.django.DjangoTemplates' ,
'DIRS' : [],
'APP_DIRS' : True ,
'OPTIONS' : {
'context_processors' : [
'django.template.context_processors.debug' ,
'django.template.context_processors.request' ,
'django.contrib.auth.context_processors.auth' ,
'django.contrib.messages.context_processors.messages' ,
],
},
},
]
|
Django 1.7 版本 settings.py 預設是這樣的:
1
2
3
4
相關推薦Django22-檢視、上下文、中介軟體有時候我們想讓一些內容在多個模板中都要有,比如導航內容,我們又不想每個檢視函式都寫一次這些變數內容,怎麼辦呢? 這時候就可以用 Django 上下文渲染器來解決。 一,初識上下文渲染器 我們從檢視函式說起,在 views.py 中返回字典在模板中使用: 1 2 三十一、python學習之Flask框架(三)檢視:路由、上下文、Flask-Script擴充套件一、裝飾器路由的具體實現 1.Flask框架路由實現 Flask有兩大核心:Werkzeug和Jinja2 Werkzeug實現路由、除錯和Web伺服器閘道器介面 Jinja2實現了模板。 Werkzeug是一個遵循WSGI協議的python函式庫 Kafka、RabbitMQ、RocketMQ訊息中介軟體的對比 —— 訊息傳送效能(轉自阿里中介軟體)引言分散式系統中,我們廣泛運用訊息中介軟體進行系統間的資料交換,便於非同步解耦。現在開源的訊息中介軟體有很多,前段時間我們自家的產品 RocketMQ (MetaQ的核心) 也順利開源,得到大家的關注。那麼,訊息中介軟體效能究竟哪家強?帶著這個疑問,我們中介軟體測試組對常見的三類訊息產品(Kafka、Rabb Kafka、RabbitMQ、RocketMQ 訊息中介軟體的對比 | 訊息傳送效能篇摘要: 訊息中介軟體效能究竟哪家強? 帶著這個疑問,我們訊息佇列測試小組對常見的三類訊息產品(Kafka、RabbitMQ、RocketMQ)做了效能比較。 阿里雲訊息佇列測試小組 出品 分散式系統中,我們廣泛運用訊息中介軟體進行系統間的資料交換,便於非同步解耦。現在 關於express中介軟體的簡要解析之應用級、路由級中介軟體(一)Express 是一個自身功能極簡,完全是由路由和中介軟體構成一個的 web 開發框架:從本質上來說,一個 Express 應用就是在呼叫各種中介軟體。中介軟體(Middleware) 是一個函式,它可以訪問請求物件(request object (req) Kafka、RabbitMQ、RocketMQ訊息中介軟體的對比引言分散式系統中,我們廣泛運用訊息中介軟體進行系統間的資料交換,便於非同步解耦。現在開源的訊息中介軟體有很多,前段時間我們自家的產品 RocketMQ (MetaQ的核心) 也順利開源,得到大家的關注。那麼,訊息中介軟體效能究竟哪家強?帶著這個疑問,我們中介軟體測試組對常見的三類訊息產品(Kafka、Rabb 四十二、python學習之Django框架(二):類檢視與中介軟體五、類檢視: 1.類檢視引入: 以函式的方式定義的檢視成為函式檢視,即我們常說的檢視函式. 但是, 檢視函式遭遇不同的請求方法(如get和post),並且需要做不同的處理時,我們如果在一個函式中編寫不同的業務邏輯,程式碼可讀性和複用性都不好. 例如: Scrapy——5 下載中介軟體常用函式、scrapy怎麼對接selenium、常用的Setting內建設定有哪些Scrapy——5 下載中介軟體常用的函式 Scrapy怎樣對接selenium 常用的setting內建設定 (Downloader Middleware)下載中介軟體常用函式有哪些 Scrapy怎樣對接Selenium 設定 【知識積累】(四)、訊息中介軟體 - 升級版一、訊息釋出 二、訊息訂閱 三、總結 1、ActiveMQ的特性(1)、多種語言和協議客戶端。語言:Java,C,C++,C#,Ruby,Perl,Python,PHP。應用協議:OpenWire,Stomp REST,WS Noti 淺談架構、框架、模式、模組、元件、外掛、控制元件、中介軟體軟體開發中,你常常會聽到技術架構、開發框架、設計模式、程式碼模組、中間層(件)、可插拔元件等等計算機行業的專有名詞。這些名詞和我們的開發工作息息相關,如果你想要在開發領域做的更好、走的更遠,你必須要對這些專有名詞有一個大概的瞭解。 1、架構 架構也成稱為軟體體系結構。簡單地說就是一種設計 Django框架(十八)—— 中介軟體、CSRF跨站請求偽造中介軟體 一、什麼是中介軟體 中介軟體是介於request與response處理之間的一道處理過程,相對比較輕量級,並且在全域性上改變django的輸入與輸出 二、中介軟體的作用 如果你想修改請求,例如被傳送到view中的HttpRequest物件。 或者你想修改view返回的HttpRespon web伺服器、Web中介軟體和Web容器的區別目錄 Web伺服器 中介軟體 容器 總結 Web開發的選擇 我們經常會被Web伺服器、Web容器和Web中介軟體這三個概念搞混。因為我們常見的很多網站要麼是由IIS搭建,要麼是由Apache、Tomcat、Ngnix搭建。所以,我們會把他們都叫成是Web伺服器,因為他們都 golang 中介軟體、json返回、302跳轉package main import ( "fmt" "net/http" ) func middleware(next http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r golangWeb框架---github.com/gin-gonic/gin學習七(重定向、中介軟體Goroutines、http自定義配置)重定向 package main import ( "github.com/gin-gonic/gin" "net/http" ) func main() { router := gin.Default() router.GET("/raw", 訊息中介軟體系列五:RabbitMQ的使用場景(非同步處理、應用解耦)一、非同步處理 場景: 使用者註冊,寫入資料庫成功以後,傳送郵件和簡訊。 準備工作: 1)安裝RabbitMQ,參考前面的文章 2)新建一個名為RabbitMQAsyncProc的maven web工程,在pom.xml檔案裡面引入如下依賴 <project xmlns="http://maven.a 訊息中介軟體kafka與activeMQ、rabbitMQ、zeroMQ、rocketMQ的比較一、kafka 1、不完全符合jms規範,注重吞吐量,類似udp 和 tcp 2、一般做大資料吞吐的管道 我們現在的用途就是負責在各個idc之間通訊 3、量大對資料不是百分之百保證的,會有資料丟失,不是百分百送達(amq和rmq等有重發機制,而kafka沒有);在吞吐量有提升 ,在這方面 Kafka、RabbitMQ、RocketMQ等訊息中介軟體的對比 —— 訊息傳送效能和區別分散式系統中,我們廣泛運用訊息中介軟體進行系統間的資料交換,便於非同步解耦。現在開源的訊息中介軟體有很多,前段時間我們自家的產品 RocketMQ (MetaQ的核心) 也順利開源,得到大家的關注。 那麼,訊息中介軟體效能究竟哪家強? 帶著這個疑問,我們中介軟體測 訊息中介軟體MQ(二)模式、應用場景、常用協議1.訊息中介軟體模式分類 1.1 點對點 1.2釋出/訂閱 2訊息中介軟體應用場景 2.1非同步通訊 有些業務不想也不需要立即處理訊息。訊息佇列提供了非同步處理機制,允許使用者把一個訊息放入佇列,但並不立即處理它。想向佇列中放入多少訊息就放多少,然後在需要的 架構師日記——Kafka、RabbitMQ、RocketMQ等訊息中介軟體的對比分散式系統中,我們廣泛運用訊息中介軟體進行系統間的資料交換,便於非同步解耦。現在開源的訊息中介軟體有很多,前段時間我們自家的產品 RocketMQ (MetaQ的核心) 也順利開源,得到大家的關注。 那麼,訊息中介軟體效能究竟哪家強? 帶著這個疑問,我們中 訊息中介軟體系列五、rabbit訊息的確認機制一、訊息的確認機制 1、消費者收到的每一條訊息都必須進行確認。(分為自動確認和消費者自行確認) 消費者在宣告佇列時,指定autoAck引數,true自動確認,false時rabbitmq會等到消費者顯示的發回一個ack訊號才會刪除訊息。autoAck=fals |