一些帮助django url不区分大小写的工具。

django-icase的Python项目详细描述


https://badge.fury.io/py/django-icase.svghttps://travis-ci.org/bennylope/django-icase.svg?branch=masterhttps://coveralls.io/repos/bennylope/django-icase/badge.svg?branch=master

一些帮助django url不区分大小写的工具。

  • 404处理程序,用于重定向不匹配的非小写URL。例如,如果/about/ 不匹配,处理程序将在返回404之前重定向到/about/
  • 实施低大小写URL的中间件。例如,所有非小写URL将 被重定向到小写形式。

概述

如果只需要匹配url模式,那么添加 对正则表达式不区分大小写。:

urlpatterns = patterns('',
    (r'^(?i)admin/(.*)', admin.site.root),
    (r'^(?i)static/(?P<path>.*)$', 'django.views.static.serve',
        {'document_root': settings.STATIC_DOC_ROOT, 'show_indexes': True}),
    (r'^(?i)login/$', 'django.contrib.auth.views.login'),
    (r'^(?i)logout/$', do_logout),
)

亚历克斯·马泰利的Stack Overflow explanation

然而,这并不能与slug匹配,slug通常是区分大小写的 默认匹配-由应用程序决定。如果应用程序使用简单的= 表达式,例如:

object = MyModel.objects.get(slug=slug)

那么,myslug与myslug不匹配。

还有一些情况下,由于其他原因,您希望强制执行url大小写 (或者客户会这样做!).

安装

安装django icase:

pip install django-icase

要使用自定义404处理程序,只需在项目url.py 配置。

handler404 = 'icase.views.icase_404_handler'

要使用小写中间件,请将其添加到 已安装的中间件

INSTALLED_MIDDLEWARE = (
    'icase.middleware.LowerCased',
    ...
)

django&python支持

此应用程序支持Django的活动支持版本, 尽管没有什么理由不应该对其他人起作用。

测试了Python3和Python2.7.9。

历史记录

0.1.1(2015-05-06)

  • 更新django nose reference以支持django 1.7+

0.1.0(2015-03-25)

  • pypi上的第一个版本。

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

推荐PyPI第三方库


热门话题
java Hibernate:合并并删除,而不是从数据库中删除实体对象   java如何在WebFilter中有条件地从Mono返回?   java调用mysql c3p0函数   可执行jar Java jar文件加载错误:无法找到或加载主类。类导致的错误:java。lang.ClassNotFoundException:某些东西。班   java如何减少/更改爬网后的延迟?   从其他语言(如Java、PHP、Perl、Python等)调用C/C++代码的最佳方式是什么?   java如何模拟影响对象的void返回方法   当我试图在ubuntu上启动JavaScala时,它抛出了一个异常   java如何正确输出游戏   理解java和C++背景下的JavaScript原型   oracle如何将Java函数转换为postgresql函数   多线程为什么我的java服务器程序在超时后不退出?   java如何使listView中的按钮在单击时工作?   试图将这个嵌套的java forloop转换为python,但我不知道如何转换。有没有一种方法可以像这样为循环执行if语句?   java幂函数在计算器中的应用   如何在java中滚动浏览mysql数据库   在Spring Boot应用程序的JUnit测试中,java没有符合自动连线JPA存储库要求的bean   java如何使用扩展类的JPanel对象?