【问题标题】:Strip http protocol from url before display in web2py?在 web2py 中显示之前从 url 中剥离 http 协议?
【发布时间】:2013-10-17 14:03:47
【问题描述】:

当使用IS_URL 验证器时,web2py 会在存储的值之前添加 http。现在,在我的视图中形成链接时,我想删除 http 和尾部斜杠。

<div>{{=A('<what goes here?>', _href=business.website)}}</div>

即给定一个url,如:

http://www.example.com/

我希望锚文本是

www.example.com(或example.com

我知道我可以使用 urlparse.urlsplit 通过标准 python 做到这一点,但是想知道 web2py 是否提供此功能?

如果使用纯 python 是最好的方法,那么剥离 url 的代码应该在哪里?看法?控制器?

【问题讨论】:

    标签: python http url web2py


    【解决方案1】:

    我知道我可以使用 urlparse.urlsplit 通过标准 python 做到这一点,但是想知道 web2py 是否提供此功能?

    不,web2py 不提供该功能,因此只需使用标准 Python。

    如果使用纯 python 是最好的方法,那么剥离 url 的代码应该在哪里?看法?控制器?

    您的选择。如果您在视图中执行此操作,则可以避免必须从控制器传递额外的变量。

    注意,如果您想阻止验证器在“http”之前添加“http”,您可以使用IS_URL(prepend_scheme=None)(您也可以将prepend_scheme 设置为其他选项,例如“https”)。

    【讨论】:

    • 您如何看待使用临时对象属性而不是第二个变量?假设控制器执行return dict(business=business),然后您在return 语句之前添加business.url_anchor_text = 'xyz'。你认为这是不好的风格吗?
    • 如果你想采用这种方法,你可以考虑创建一个虚拟字段来这样做。
    猜你喜欢
    • 2014-11-22
    • 1970-01-01
    • 2017-01-17
    • 2020-03-25
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    • 2020-05-08
    • 1970-01-01
    相关资源
    最近更新 更多