0

次のように URL を読み取ります。

example.com/product/xy&z

urls = ('/product/(.*)', product)

GET の製品クラスでは、URL からプルされた製品 ID (xy&z) を読み取って、DB クエリを作成しています。これらの ID の一部には「&」が含まれています。Python でその値を受け取ると、エスケープされています。エスケープを解除する運がなかったので、クエリを正しく実行できます。以下は機能しません。

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

Web.py または Python でのベスト プラクティスは何ですか? これを自分で診断する最良の方法は何ですか? ありがとう!

4

1 に答える 1

0

これらの製品 ID をそのまま取得しています。次のコードを参照してください。

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 を提供してください。

于 2013-02-02T11:49:58.417 に答える