点击链接后,如何让web.py获取页面?我在我的模板中有这个:
<a href='add.html'>Home</a>
当我点击'Home'时,我会'找不到'.
在我的应用程序中,我有'/ add'映射到'Add'类,它返回'Boom!' 使用模板add.html.
urls = ('/', 'Index',
'/add','Add')
class Add(object):
def GET(self):
return render.add('Boom!')
Run Code Online (Sandbox Code Playgroud)
我觉得当我要求时/add.html,Add类将处理请求并返回'Boom!'
为什么我一直"找不到"?
以.html lilke /add.html结尾的页面URI的来源是在静态托管环境中,那些传统上实际上是具有html内容的单个文本文件,并且以这样的文件结尾的文件是.html
但您的系统是动态的,可以动态创建网页.它不一定需要以.html结尾的页面.虽然如果你愿意,你可以模仿传统的行为.
但是在现代和动态系统中,通常优选单个"页面"上没有结尾.
因此,您可以像Ignacio所建议的那样,摆脱.html并请求/add页面,该页面是该资源的有效且足够的唯一标识符.
如果你想保持.html结尾.你必须在路线中添加它.
urls = (
'/', 'Index',
'/add.html','Add',
)
Run Code Online (Sandbox Code Playgroud)
您还可以有多个指向同一资源的路由,以便/ add和/add.html都有效并显示相同的内容,但内容复制还有其他缺点:
urls = (
'/', 'Index',
'/add','Add',
'/add.html','Add',
)
Run Code Online (Sandbox Code Playgroud)
我建议摆脱.html.这意味着您坚持使用问题中的代码并创建指向页面的链接,如下所示:
<a href="/add">add something</a>
Run Code Online (Sandbox Code Playgroud)