Python 为什么赢了';我的正则表达式不能在Django中解析这个URL吗?

Python 为什么赢了';我的正则表达式不能在Django中解析这个URL吗?,python,regex,django,django-urls,Python,Regex,Django,Django Urls,目前正在Django中工作,我正在尝试进行设置,以便一个页面上的表单调用特定的URL,并为其呈现适当的视图。解析URL的正则表达式有问题,因为它不会将值“\?”读取为转义问号,我认为它应该这样做。以下内容在Pythex上重新签出 应用程序提交表单时,会调用URL: http://127.0.0.1:8000/map/?street=62+torrey+pines+cove&city=san+diego&state=CA&radius=50&drg=4 在我的项目

目前正在Django中工作,我正在尝试进行设置,以便一个页面上的表单调用特定的URL,并为其呈现适当的视图。解析URL的正则表达式有问题,因为它不会将值“\?”读取为转义问号,我认为它应该这样做。以下内容在Pythex上重新签出

应用程序提交表单时,会调用URL:

http://127.0.0.1:8000/map/?street=62+torrey+pines+cove&city=san+diego&state=CA&radius=50&drg=4
在我的项目级URL.py文件中,我有以下内容:

url(r'^map/', include('healthcare_search.urls', namespace="healthcare_search")),
这将调用我的应用程序级URL.py文件,其中我有:

    url(r'^\?street=(?P<street>[a-z0-9+]+)&city=(?P<city>[a-z+]+)&state=(?P<state>[a-z]{2})&radius=(?P<radius>[0-9]{1,3})&drg=(?P<drg>[0-9]{1,3})', views.map_hospitals, name = "map_hospitals"),
url(r'^\?street=(?P[a-z0-9+])和city=(?P[a-z+])和state=(?P[a-z]{2})和radius=(?P[0-9]{1,3})和drg=(?P[0-9]{1,3}),view.map_hospitals,name=“map_hospitals”),
这只会导致404错误,即URL与任何模式都不匹配。我知道这是一个RE问题,因为我删除了应用级别RE中的所有内容,只提交了
http://127.0.0.1:8000/map/
查看它是否会调用正确的视图,它成功地调用了该视图。事情似乎在“\?”上破裂了。知道我做错了什么吗


请注意,这是我第一次编写正则表达式,因此,如果正则表达式不清楚或写得不好,我深表歉意

您不希望以这种方式访问变量。更好的选择是从请求中获取它们,因为它们可以在
请求
的变量字典中找到。在您看来,您可以通过
request.get.get('street',None)
获取
street
的值,如果
street
在请求中,它将返回值,否则返回
None

如果您需要直接使用URL字符串,您可以尝试Python标准库中的
urllib.parse
模块:完美!非常感谢。有没有一种方法可以在不将变量自动放入URL的情况下实现这一点?如果我不想让他们退出,我宁愿它是干净的,没有额外的信息…或者这就是不管请求如何传递的方式?