到目前为止,队友已将此代码用于用户名的网址格式:
# urls.py
urlpatterns = patterns('...',
url(r'^user/(?P<username>[.-_\w]+)/foo', 'myapp.views.foo'),
....
有一个隐藏的错误:如果用户名包含,-
则反转将失败,因为正则表达式模式的开头[.-_
表示“所有字符从.
到_
”。
可以使用什么模式来匹配所有有效的用户名?
PS:-
如果您想在Django中匹配所有可能的用户名,我想在正则表达式中添加符号是不够的。
我认为您不应该在URL模式中添加任何用户名验证。将您的验证放在一个地方-第一次创建帐户的地方。
您应该匹配用户在那里提供的所有内容,并将其传递给安全的数据库函数以查找用户名,如果用户名不存在,则失败。
因此,在您的url模式中,让浏览器发送非空的任何内容,并依靠非常聪明的数据库来告诉您您先前确定的有效内容。
url(r'^user/(?P<username>.+)/foo$', 'myapp.views.foo'),
另外,请注意最后的“ $”。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句