繁体   English   中英

web.py中的超链接

[英]Hyperlinks in web.py

点击链接后,如何让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!')

我觉得当我请求/add.html ,Add类将处理请求并返回'Boom!'

为什么我一直“找不到”?

以.html lilke /add.html结尾的页面URI的来源是在静态托管环境中,那些传统上实际上是具有html内容的单个文本文件,并且以这样的文件结尾的文件是.html

但您的系统是动态的,可以动态创建网页。 它不一定需要以.html结尾的页面。 虽然如果你愿意,你可以模仿传统的行为。

但是在现代和动态系统中,通常优选单个“页面”上没有结尾。

因此,您可以像Ignacio所建议的那样,摆脱.html并请求/add页面,这是该资源的有效且足够的唯一标识符。

如果你想保持.html结尾。 你必须在路线中添加它。

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

您还可以有多个指向同一资源的路由,以便/ add和/add.html都有效并显示相同的内容,但内容复制还有其他缺点:

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

我建议摆脱.html。 这意味着您坚持使用问题中的代码并创建指向页面的链接,如下所示:

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

将路由更改为“/add.html”或将链接更改为“添加”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM