2011-12-25 92 views
3

當我點擊鏈接時,如何讓web.py抓取頁面? 我有這個在我的模板:web.py中的超鏈接

<a href='add.html'>Home</a>

當我點擊「家」,我得到「未找到」。

在我的應用程序中,我將'/ add'映射到'Add'類,它返回'Boom!'。使用模板add.html。

urls = ('/', 'Index', 
    '/add','Add') 

class Add(object): 
    def GET(self): 
     return render.add('Boom!') 

我覺得當我請求/add.html,添加類處理請求和返回「轟!」

爲什麼我一直得不到'找不到'?

回答

8

頁URI以.html lilke /add.html結束的起源是在靜態主機環境那些用HTML的內容和這樣一個文件結尾的文件真正的傳統單一的文本文件名爲.html

但是你的系統是動態的,並且可以隨時創建網頁。它不一定需要以.html結尾的頁面。雖然你可以模仿傳統的行爲,如果你的願望。

但是,在一個現代化的動態系統中,通常最好是單一的「頁面」根本沒有結束。

因此,您可以像Ignacio也建議的那樣,擺脫.html並請求/add頁面,該頁面是該資源的唯一有效標識符。

如果您想保持.html結尾。你必須在路線中添加它。

urls = (
    '/', 'Index', 
    '/add.html','Add', 
) 

你也可以有指向同一資源,多路由,使兩者/添加和/add.html是有效的,並顯示相同的內容,但內容重複有其他缺點:

urls = (
    '/', 'Index', 
    '/add','Add', 
    '/add.html','Add', 
) 

我建議擺脫.html。這意味着你堅持從你的問題的代碼,並創建鏈接到這樣的頁面:

<a href="/add">add something</a> 
+1

Holala。有用! – kassold 2011-12-25 16:57:31

5

將路徑更改爲「/add.html」或將鏈接更改爲「添加」。