文章内容
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
黄兵个人博客原创。
评论列表