Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python3,与列表重新匹配_Python_Django - Fatal编程技术网

Python3,与列表重新匹配

Python3,与列表重新匹配,python,django,Python,Django,我读到: 我列出了一个在django中不能用于用户名的列表 列表:禁止的用户名列表=['admin'、'master'、'owner'] 所以我做了一个这样的代码: 视图.py def username_choice(request): if request.method == "POST": username = request.POST['username'] for item in forbidden.FORBIDDEN_USERNAME_

我读到:

我列出了一个在django中不能用于用户名的列表

列表
禁止的用户名列表=['admin'、'master'、'owner']

所以我做了一个这样的代码:

视图.py

def username_choice(request):

    if request.method == "POST":
        username = request.POST['username']    
        for item in forbidden.FORBIDDEN_USERNAME_LIST:
            match = re.search("r'\b"+item+"\b'", username)
            if match:
                return JsonResponse({'result': item + 'banned username'})
但它似乎不起作用

也许我认为,
match=re.search(“r'\b”+item+“\b'”,用户名)
这就是问题所在


我如何解决这个问题?

您只需在中使用

def username_choice(request):

    if request.method == "POST":
        username = request.POST['username']    
        for item in forbidden.FORBIDDEN_USERNAME_LIST:
          if re.search(r'\b'+str(item)+'\\b', username, re.I):
              return JsonResponse({'result': item + 'banned username'})
forbidden = ['admin', 'master', 'owner']
username = request.POST['username']
match = [nm for nm in forbidden if nm in username]
if match:
    # part of the username is in the forbidden list.
IPython中的示例:

In [1]: forbidden = ['admin', 'master', 'owner']

In [2]: username = 'owner123'

In [3]: match = [nm for nm in forbidden if nm in username]

In [4]: match
Out[4]: ['owner']

您只需在
中使用

forbidden = ['admin', 'master', 'owner']
username = request.POST['username']
match = [nm for nm in forbidden if nm in username]
if match:
    # part of the username is in the forbidden list.
IPython中的示例:

In [1]: forbidden = ['admin', 'master', 'owner']

In [2]: username = 'owner123'

In [3]: match = [nm for nm in forbidden if nm in username]

In [4]: match
Out[4]: ['owner']

只要用这句话:

match = re.search(r'[%s]+' % item, username, re.I)
与此相反:

match = re.search("r'\b"+item+"\b'", username)

只要用这句话:

match = re.search(r'[%s]+' % item, username, re.I)
与此相反:

match = re.search("r'\b"+item+"\b'", username)

如何从前端输入用户名?最好在表单验证中检查此项。如何从前端输入用户名?最好在表单验证中检查此项。谢谢Exprator,但是如果
username=admin123
?我还想禁止所有带有任何禁止用户名列表的用户名。谢谢Exprator,但是如果
username=admin123
?我还想禁止所有带有任何禁止的用户名列表的用户名。我喜欢这种方法不使用正则表达式。我喜欢这种方法不使用正则表达式。