gpt4 book ai didi

python - 如何在 django 的 url 中传递特殊字符

转载 作者:行者123 更新时间:2023-11-28 21:52:41 29 4
gpt4 key购买 nike

假设我想在 url 中传递用户名:

username  = 'kakar@gmail.com'

所以在 url 中,它是这样的:

url(r'(?P<user_name>\w+)/$', 'user_related.views.profile', name='profile'),

并在 views.py 中获取该用户:

def profile(request, user_name):
user = User.objects.get(username=user_name)

return render(request, 'user_profile.html', {'user':user})

但是我得到一个错误:

User matching query does not exist.

因为django会自动将@转换成%40。如何将实际的 username 传递给 View ?请帮我解决这个问题。谢谢!

最佳答案

使用unquote来自标准 urllib 模块的函数:

from urllib import unquote

user = User.objects.get(username=unquote(user_name))

顺便说一句,据我所知,您的 url() 中的正则表达式应该是 [\w@%.]+。普通 \w+ 不匹配 kakar@gmail.comkakar%40gmail.com

关于python - 如何在 django 的 url 中传递特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27958732/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com