一组用于附加、删除或替换URL中的查询字符串参数的工具(最初由SophiLabs创建)

django-qurl的Python项目详细描述


从URL中追加、删除或替换查询字符串参数(保留顺序)。 最初由Sophilabs创建-https://github.com/sophilabs/django-qurl-templatetag

安装

pip install -e git+https://github.com/obiwanus/django-qurl.git#egg=django-qurl

模板中的用法

示例:

{% load qurl %}

{% qurl '/search?page=1&color=blue&color=green' order=name page-- color+=red color-=green %}
Output: /search?color=blue&order=name&color=red

{% qurl request.get_full_path order='name' %}
Output: /your/current/path/?order=name

参数:

name=value: replace all values of name by one value
name--: remove all values of name
name+=value: append a new value for name
name-=value: remove the value of name with the value

在模板标记中使用“反转”:

{% qurl 'url_name' [reverse_params] | order=name color+=red color+=green %}
Output: /reversed/url/?order=name&color=red&color=green

相反的语法与标准django^{tt1}中的语法完全相同$ 标签。

视图中的用法

示例:

fromqurlimportqurlurl='/testurl/1/'qurl(url,add={'a':'a1','b':['b1','b2']})# Output: /testurl/1/?a=a1&b=b1&b=b2url='/testurl/1/?a=a1&b=b1&b=b2'qurl(url,add={'a':'a2'},remove=['b'])# Output: /testurl/1/?a=a2url='/testurl/1/?a=a1&b=b1&b=b2'qurl(url,add={'a':['a2']},remove=['b'])# Output: /testurl/1/?a=a1&a=a2url='/testurl/1/?a=a1&b=b1&b=b2'qurl(url,exclude={'b':'b2'},add={'a':'a2'})# Output: /testurl/1/?a=a1&a=a2&b=b1# You can use request.GET as a baseurl='/testurl/1/'qurl(url,add=request.GET,exclude={'b':'b1'}

注:

如果要为参数指定特定值(全部替换 现有值,使用^ {TT2}$。

如果要向已存在的值添加值,请使用 add={'param':['value']}。当然,您可以添加多个值。

请检查测试以获取更多使用示例。

运行测试

请确保tox已安装并运行 tox来自命令行。

源代码托管在github上:https://github.com/obiwanus/django-qurl/

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java应用程序不是在Eclipse中运行,而是在命令行中运行   swing Java图形组件问题。似乎找不到错误   我需要键盘。close();让代码正常工作?   Springboot中的java HttpSession   抽象语法树我想添加一个语句。我试图解析它,java解析器异常被抛出。如何克服它?   java Hibernate:清理会话   具有不连续子集的java划分问题   java正则表达式查找最后一个冒号后的字符串   java从SpringShell执行OS命令   Java扫描器字符串输入   java字符串索引越界异常(charAt)   java执行器服务终止被卡住   Springockito没有继承java@ContextConfiguration   java如何为一个servlet映射多个url   java安卓获取命令的stderr   java生成类型。表:数据库中的大数字   安卓 Getter Setter返回NothingJava