2009-01-16 98 views
3

我正在開發一個使用Django的博客應用程序。目前,URL /blog/顯示博客的頭版(前五個帖子)。遊客然後可以瀏覽或「瀏覽」博客條目。這部分映射到/blog/browse/{page}/,其中page當然是一個整數,指定應該顯示哪些博客條目的「頁面」。但是,我想,或許「頁碼」應該是查詢字符串的屬性,而不是(例如,/blog/browse/?page=2),因爲瀏覽頁面的內容不是靜態的(即,只要我添加另一個帖子,/blog/browse/2/將有不同的內容比之前添加該職位)。這似乎是像Stack Overflow和Reddit這樣的網站做的事情。例如,當通過堆棧溢出問題進行分頁時,使用"page" attribute;同樣,Reddit使用"count" attribute在網址中「嵌入」頁碼的最佳方式是什麼?

擴展這一想法,我意識到,我用的是相同的模板來呈現兩個/blog//blog/browse/的內容,所以它甚至可能是有意義的只是通過博客的內容使用URL像/blog/?page=2頁。

有什麼建議嗎?有沒有這樣做的「標準」方式,或者至少是一種「最佳實踐」方法?

回答

3

我更喜歡使用GET URL參數,如URL?pg =#。這是非常常見的,爲用戶提供了關於正在發生的事情的標準視覺線索。例如,如果我想爲其中一個頁面添加書籤或創建一個外部鏈接,我知道我不會想到可以刪除pg參數以指向「最新」的首頁索引。使用嵌入式#,這並不明顯......我是否忽略參數?我是否總是必須將它設置爲1?它完全是一個不同的基地址?對我來說,通過GET參數進行分頁可以得到一個稍微合理的URL,因爲如果忽略該參數並且該參數不影響基本URL,則會有一個可接受的默認值。

此外,儘管我無法證明這一點,但它給了我一種溫暖的模糊感覺,即Google有更好的機會來弄清楚該頁面內容的性質(即它是進一步數據的分頁索引,並且將可能會經常更新)與嵌入在URL中的頁面#相比,這將更加不透明。這就是說,我認爲這是99%的個人喜好,我非常懷疑它有任何真正的功能差異,所以請儘量選擇更容易,更適合當前的做事方式。

編輯:忘了提及我的意見是Django的具體...我有幾個Django應用程序,所以我比較熟悉他們建立他們的URL的方式,我仍然使用「pg」GET參數而不是直接將其嵌入到網址中。

0

似乎有兩件事情正在進行。一個靜態頁面,不會改變,可用於permalinking,就像一篇文章,以及一個經常更新的動態頁面。沒有理由不能同時使用兩者。 URL重寫應該允許這個工作很好。沒有理由讓實現控制界面,總是至少有一種方法來對每隻貓進行皮膚處理。

+0

我確實使用永久鏈接鏈接到特定的帖子;我只是想知道應用程序的分頁/瀏覽方面。 – mipadi 2009-01-16 20:09:51

4

對於我的錢,解決此問題的最佳通用方法是使用django-pagination實用程序。這非常容易使用,你的網址應該有你想要的格式。

相關問題