Python Django:使用url进行查询(使用url分配变量)
我正在尝试为我的网站创建一个查询系统,我认为最好的方法和最简洁的方法是使用url模式分配搜索变量 例如,我想搜索modelPython Django:使用url进行查询(使用url分配变量),python,django,http,Python,Django,Http,我正在尝试为我的网站创建一个查询系统,我认为最好的方法和最简洁的方法是使用url模式分配搜索变量 例如,我想搜索modelUser的对象: 用户将HttpRequest发送到以下url: https://127.0.0.1/search/q=“管理员” 现在HttpRequest也被发送到searchview,我们不知何故得到了q变量数据 def search(request): for query in User.objects.all(): if q in quer
User
的对象:
用户将HttpRequest发送到以下url:
https://127.0.0.1/search/q=“管理员”
现在HttpRequest也被发送到search
view,我们不知何故得到了q
变量数据
def search(request):
for query in User.objects.all():
if q in query: # < We somehow need to get data of 'q'.
return HttpResponse(q)
def搜索(请求):
对于User.objects.all()中的查询:
如果查询中的q:#<我们需要以某种方式获取“q”的数据。
返回HttpResponse(q)
由于我在User.objects.all()
中有admin,因此应该返回HttpResponse'admin'
如何创建此url模式?因此,我可以从url分配
q
变量,然后将其发送到系统以查找它?您可以从url捕获命名字符串,如下所示:
URL.py:
urlpatterns = [
url(r'^blog/page(?P<num>[0-9]+)/$', views.page),
]
您可以从URL中捕获命名字符串,如下所示: URL.py:
urlpatterns = [
url(r'^blog/page(?P<num>[0-9]+)/$', views.page),
]
我对此URL有问题:
https://127.0.0.1/search/q="admin"
URL中没有?
,因此没有查询字符串,它都是“路径”的一部分。在那里使用像=
和“
这样的字符会混淆很多东西,如果它真的有效的话
要么就这么做
https://127.0.0.1/search/admin
使用类似于r'^search/(?p.+)$”
的URL模式,或
https://127.0.0.1/search/?q=admin
在这种情况下,查询字符串将位于
请求中。获取['q']
;还可以使用它来处理查询参数(例如,用于验证查询参数)。我对此URL有问题:
https://127.0.0.1/search/q="admin"
URL中没有?
,因此没有查询字符串,它都是“路径”的一部分。在其中使用=
和“
这样的字符会混淆很多东西,如果它真的有效的话
要么就这么做
https://127.0.0.1/search/admin
使用类似于r'^search/(?p.+)$”
的URL模式,或
https://127.0.0.1/search/?q=admin
在这种情况下,查询字符串将位于
请求中。GET['q']
;也可以使用来处理查询参数(例如,用于验证它们)。您可以使用查询参数,但为此,您的url应如下所示:https://127.0.0.1/search/?q=admin
(注意问号)。然后,在您的视图中,您可以使用request.GET[param]
访问所有查询参数(在您的示例中是request.GET['q']
)。您可以阅读wiki文章以了解有关查询参数的更多信息。您已经看过这个问题了吗?关于如何在Django中处理GET参数的官方文档可以在这里找到:您可以使用查询参数,但为此,您的url应该如下所示:https://127.0.0.1/search/?q=admin
(注意问号)。然后,在您的视图中,您可以使用request.GET[param]
访问所有查询参数(在您的示例中是request.GET['q']
)。您可以阅读wiki文章以了解有关查询参数的更多信息。您已经看过这个问题了吗?关于如何在Django中处理GET参数的官方文档可以在这里找到:我知道第一种方法,但没有发现它是好的设计,第二种方法是我所需要的。我知道第一种方法,但没有发现它是好的设计,第二种方法是我所需要的。