哪个是令牌作为参数的django url正则表达式?

时间:2016-05-25 13:39:02

标签: python regex django

我想在我的django服务器中激活我的用户,当他们通过电子邮件中的链接跟踪令牌时,如下所示:

 url(r'^user-activation/(?P<id>\w+)/', views.UserActivation.as_view()),

我有这种模式

 public static string Encript(string strData)
{
    string hashValue = HashData(strData);
    string hexHashData = ConvertStringToHex(hashValue);
    return hexHashData;
}

public static string HashData(string textToBeEncripted)
{
    //Convert the string to a byte array
    Byte[] byteDataToHash = System.Text.Encoding.Unicode.GetBytes(textToBeEncripted);

    //Compute the MD5 hash algorithm
    Byte[] byteHashValue = new System.Security.Cryptography.MD5CryptoServiceProvider().ComputeHash(byteDataToHash);

    return System.Text.Encoding.Unicode.GetString(byteHashValue);
}


public static string ConvertStringToHex(string asciiString)
{
    string hex = "";
    foreach (char c in asciiString)
    {
        int tmp = c;
        hex += String.Format("{0:x2}", (uint) System.Convert.ToUInt32(tmp.ToString()));
    }
    return hex;
}

但是它回归了404.我搜索了很多,似乎什么都没有用。我做错了什么?

我无法找到任何可以阅读的答案

https://docs.djangoproject.com/es/1.9/ref/urls/

,也不

https://docs.djangoproject.com/es/1.9/topics/http/urls/

编辑:

我已阅读帖子

Learning Regular Expressions

但是没有关于同时接收连字符和点的例子,这是导致我混淆的原因。

明确的答案解决了我的问题。感谢

2 个答案:

答案 0 :(得分:4)

您的令牌还包含.-字符,因此您还需要正则表达式匹配它们 - 它目前只匹配字符

url(r'^user-activation/(?P<id>[\w\.-]+)/', views.UserActivation.as_view()),

答案 1 :(得分:4)

python正则表达式中的

\w将匹配任何字母数字字符和下划线;这相当于集合[a-zA-Z0-9_]。你有.-等各种不匹配的角色,它们一定会失败。

您需要[\w.-]来加入它们。

检查regex syntax上的python doc。