真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

怎么實(shí)現(xiàn)Django中視圖函數(shù)的參數(shù)傳遞-創(chuàng)新互聯(lián)

創(chuàng)新互聯(lián)www.cdcxhl.cn八線動態(tài)BGP香港云服務(wù)器提供商,新人活動買多久送多久,劃算不套路!

創(chuàng)新互聯(lián)建站長期為上千多家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為博羅企業(yè)提供專業(yè)的成都網(wǎng)站制作、成都做網(wǎng)站,博羅網(wǎng)站改版等技術(shù)服務(wù)。擁有10多年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。

本篇文章為大家展示了怎么實(shí)現(xiàn)Django中視圖函數(shù)的參數(shù)傳遞,代碼簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

有時你會發(fā)現(xiàn)你寫的視圖函數(shù)是十分類似的,只有一點(diǎn)點(diǎn)的不同。 比如說,你有兩個視圖,它們的內(nèi)容是一致的,除了它們所用的模板不太一樣,因此將部分參數(shù)傳遞到URLconf的視圖函數(shù)中就可以了。

# urls.py
 
from django.conf.urls.defaults import *
from mysite import views
 
urlpatterns = patterns('',
  (r'^foo/$', views.foo_view),
  (r'^bar/$', views.bar_view),
)
# views.py
 
from django.shortcuts import render_to_response
from mysite.models import MyModel
 
def foo_view(request):
  m_list = MyModel.objects.filter(is_new=True)
  return render_to_response('template1.html', {'m_list': m_list})
 
def bar_view(request):
  m_list = MyModel.objects.filter(is_new=True)
  return render_to_response('template2.html', {'m_list': m_list})

我們在這代碼里面做了重復(fù)的工作,不夠簡練。 起初你可能會想,通過對兩個URL都使用同樣的視圖,在URL中使用括號捕捉請求,然后在視圖中檢查并決定使用哪個模板來去除代碼的冗余,就像這樣:

# urls.py
 
from django.conf.urls.defaults import *
from mysite import views
 
urlpatterns = patterns('',
  (r'^(foo)/$', views.foobar_view),
  (r'^(bar)/$', views.foobar_view),
)
# views.py
 
from django.shortcuts import render_to_response
from mysite.models import MyModel
 
def foobar_view(request, url):
  m_list = MyModel.objects.filter(is_new=True)
  if url == 'foo':
    template_name = 'template1.html'
  elif url == 'bar':
    template_name = 'template2.html'
  return render_to_response(template_name, {'m_list': m_list})

這種解決方案的問題還是老缺點(diǎn),就是把你的URL耦合進(jìn)你的代碼里面了。 如果你打算把 /foo/ 改成 /fooey/ 的話,那么你就得記住要去改變視圖里面的代碼。

對一個可選URL配置參數(shù)的優(yōu)雅解決方法: URLconf里面的每一個模式都可以包含第三個數(shù)據(jù): 一個關(guān)鍵字參數(shù)的字典:

有了這個概念以后,我們就可以把我們現(xiàn)在的例子改寫成這樣:

# urls.py
 
from django.conf.urls.defaults import *
from mysite import views
 
urlpatterns = patterns('',
  (r'^foo/$', views.foobar_view, {'template_name': 'template1.html'}),
  (r'^bar/$', views.foobar_view, {'template_name': 'template2.html'}),
)
# views.py
 
from django.shortcuts import render_to_response
from mysite.models import MyModel
 
def foobar_view(request, template_name):
  m_list = MyModel.objects.filter(is_new=True)
  return render_to_response(template_name, {'m_list': m_list})

如你所見,這個例子中,URLconf指定了 template_name 。 而視圖函數(shù)會把它當(dāng)成另一個參數(shù)。

這種使用額外的URLconf參數(shù)的技術(shù)以最小的代價給你提供了向視圖函數(shù)傳遞額外信息的一個好方法。

上述內(nèi)容就是怎么實(shí)現(xiàn)Django中視圖函數(shù)的參數(shù)傳遞,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道。


本文標(biāo)題:怎么實(shí)現(xiàn)Django中視圖函數(shù)的參數(shù)傳遞-創(chuàng)新互聯(lián)
文章分享:http://weahome.cn/article/dcopss.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部