Python 取消跳过URL参数w/Web.py

Python 取消跳过URL参数w/Web.py,python,python-2.7,web.py,Python,Python 2.7,Web.py,按如下方式读取url: example.com/product/xy&z urls = ('/product/(.*)', product) 在GET上的product类中,我正在读取从URL中提取的产品ID(xy&z),以创建DB查询。其中一些ID中有一个“&”,当我在python中收到该值时,它已被转义。我没有幸运地把它放回去,这样我就可以正确地运行查询了。以下各项不起作用: product = product.replace("&", "&") product =

按如下方式读取url:

example.com/product/xy&z

urls = ('/product/(.*)', product)
在GET上的product类中,我正在读取从URL中提取的产品ID(xy&z),以创建DB查询。其中一些ID中有一个“&”,当我在python中收到该值时,它已被转义。我没有幸运地把它放回去,这样我就可以正确地运行查询了。以下各项不起作用:

product = product.replace("&", "&")
product = HTMLParser.unescape.__func__(HTMLParser,product)

在Web.py甚至Python中的最佳实践是什么?我自己诊断的最好方法是什么?谢谢

我正在将这些产品标识开箱,请参见以下代码

import web

urls = (
    "/product/(.*)", "Product"
)


class Product:
    def GET(self, product_id):
        return product_id


app = web.application(urls, globals())


if __name__ == "__main__":
    #app.run()
    assert web.__version__ == "0.37"
    b = app.browser()
    b.open('/product/xy&z')
    assert b.status == 200
    assert "xy&z" in b.data
    assert "xy&z" not in b.data
    b.open('/product/xy&z')
    assert "xy&z" in b.data

请提供不返回所需产品id的失败url。

您是否尝试过:
导入HTMLPasser;HTMLParser.HTMLParser().unescape(产品)
?这对我来说很有用。。。def main():product=“www.site.com/xx&;y”print product product=product.replace(“&;”,“&”)print product main()我猜是这样,但很确定web.py是如何处理这个值的。我可以做一个字符串,并使用替换没有问题。问题是通过web.py读取此变量,并以不同的方式处理此值,并且典型的选项都不起作用。也不知道如何通过web.py进行诊断。什么是product=HTMLParser.unescape.\uuuu func\uuuu(HTMLParser,product)行?什么都没有,sry这是一个输入错误我把它拿出来,用bernie的例子代替了它。不走运。谢谢你帮我找到了正确的方向。我跳过了一段代码,假设问题发生在sql查询之前,但事实并非如此。我遇到的问题是创建用于查询的词典。在字典的声明中,我称之为产品_iduse web.websafe,它正在转义它。啊,非常感谢你让我走上正轨,下次我需要亲自抓住它。不客气!下面是有关测试web.py应用程序的更多信息:,但有时您可能只需访问
打印
,当从集成web服务器运行web.py应用程序时,它将输出到控制台!谢谢你的补充信息。有时候webpy文档非常混乱,很难找到正确的信息。