我正在寻找类似于java.net.URL的Python模块,Django,Zope或其他地方的东西。
最好从语义上考虑,因为对相关程序的分析结果表明URL在其中起着至关重要的作用。其结果是这样的URL类在该程序中也将具有很大的实际用途。
当然,我可以自己编写这样的类,但在开始“重新发明轮子”之前,我想四处看看。
我查看了urllib2和urlparse。 urlparse
基本上具有我需要的功能,但它没有像java.net.URL
那样将其封装成一个类。根据我的程序分析,它的工作方式是颠倒的。
我还查看了urlparse
的源代码中的SplitResult
和ParseResult
类。它们具有一些基本功能,可以用于子类化。但是,我将不得不重写剩余的urlparse函数作为子类方法。
我还发现了mxURL - Python的灵活URL数据类型。它非常接近我真正想要的东西。只是似乎对于我的目的来说过于复杂了。
有人能推荐另一个选项吗?我应该继续重新发明轮子吗?
我的解决方案:
要获取我的URL类,我基本上做了两件事:
- 从
urlparse.ResultMixin
继承。 - 定义一个函数,该函数仅调用
urlparse.urlparse()
并将结果转换为URL实例的参数。
urlparse
似乎已经完成了这项工作,但并没有否定使用Java类的理由。 - Joeurl[key] = value
语法来设置 GET 参数。 - Ram Rachum