Python 取消跳过URL参数w/Web.py
按如下方式读取url: example.com/product/xy&zPython 取消跳过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 =
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文档非常混乱,很难找到正确的信息。