2016-12-29 47 views
0

在Django中,您爲網站中的鏈接/結束點創建了一個URL。我的問題是如果你正在創建一個有很多鏈接的東西,說一個博客應用程序,你可以在你的urls.py中實際上有成百上千的url定義。假設鏈接沒有參數,即url不捕獲輸入,那麼這樣的Django應用程序將需要設備一種方式來利用數據庫來最小化URL定義。任何人都可以想到更高效的解決方案嗎?如何在Django中模擬多個url定義?

+1

那麼,你的假設似乎無效。你爲什麼不在網址中捕捉一個slug值來決定顯示哪些內容? –

+0

@丹尼爾你在說什麼像(r'^ myapp /(?P /$',views.showpage),然後只需用swictch/if語句或通過ORM檢查? – user7339197

+0

嗯,但我不知道是什麼if語句會在那裏完成(並且Python沒有切換) –

回答

2

Django中的URL可以有一些參數可以被替換以生成大量的URL。

比方說你Blog模型是一樣的東西

class Blog(models.Model): 
    title=models.CharField(max_length=200) 
    content=models.TextField() 

然後,您可以通過定義URL創建爲每個博客URL作爲

url("^blog/([0-9]+)/$, views.blog_details) 

([0-9]+部分告訴Django尋找一個號碼作爲參數,這將是一個網址,例如/blogs/1234/例如

對應的視圖函數wou LD把博客ID作爲參數

def blog_details(blog_id): 
    blog=get_object_or_404(Blog, pk=blog_id) 
    # generate view of this blog from template 

你可以做一大堆與URL參數,詳細信息在https://docs.djangoproject.com/en/1.10/topics/http/urls/

+0

您可能想要使用:get_object_or_404()https://docs.djangoproject.com/en/1.10/topics/http/shortcuts/#get- object-or-404 – Paul

+0

謝謝!編輯我的答案以反映這一點 – Bitonator

相關問題