gue*_*tli 6 python regex django django-urls
到目前为止,团队成员将此代码用于用户名的url模式:
# urls.py
urlpatterns = patterns('...',
url(r'^user/(?P<username>[.-_\w]+)/foo', 'myapp.views.foo'),
....
Run Code Online (Sandbox Code Playgroud)
有一个隐藏的错误:如果用户名包含-倒车将失败,因为正则表达式的开始[.-_"从所有字符手段.来_".
可以使用什么模式匹配所有有效的用户名?
PS:我想-如果你想在django中匹配所有可能的用户名,那么将符号添加到正则表达式是不够的.
我认为你不应该在你的网址模式中进行任何用户名验证.将验证保存在一个位置 - 首次创建帐户的位置.
您应该匹配用户提供的任何内容,并将其传递给安全数据库函数以查找用户名,如果不存在则失败.
因此,在您的网址模式中,让浏览器发送任何非空的内容,并依靠您非常智能的数据库告诉您之前认为有效的内容.
url(r'^user/(?P<username>.+)/foo$', 'myapp.views.foo'),
Run Code Online (Sandbox Code Playgroud)
另外,请注意最后的"$".