文章内容

2022/3/31 15:42:12,作 者: 黄兵

Flask url 转义如何处理,Jinja2 url 转码

最近在使用 url 中的 #:~:text= 应该如何使用的时候出现了一些问题,最主要就是对 url 里面的内容经行转码。

JinJa2 的代码如下:

<a href="{{ url_for('main.blog_content',link_text=item.uri ) }}" class="feed-article">

显示的效果为:

what-is-a-web-crawler%23:~:text%3D网络爬虫是一种在%20Internet%20上运行自动化任务的软件应用程序%2C简单攻击模式的机器人

上面最重要的 # 转义为 %23,完全失去了效果,我们需要控制它不能转义,具体代码如下:

<a href="{{ url_for('main.blog_content',link_text=item.uri )|replace('%23','#')|replace('%3D','=')|replace('%20',' ')|replace('%2C',',') }}" class="feed-article">

上面使用 replace 替换被转义的字符,最后转码之后的效果如下:

what-is-a-web-crawler#:~:text=网络爬虫是一种在%20Internet%20上运行自动化任务的软件应用程序,简单攻击模式的机器人

有一些问题没有解决,但是显示没有问题。


参考资料:

1、Jinja2 doc - jinja-filters.urlencode


黄兵个人博客原创。

转载请注明出处:黄兵个人博客 - Flask url 转义如何处理,Jinja2 url 转码

分享到:

发表评论

评论列表