我目前正在定义正则表达式,以便捕获URL中的参数,如教程中所述。我如何访问参数从URL作为HttpRequest对象的一部分?

我的HttpRequest。GET当前返回一个空的QueryDict对象。

我想学习如何在没有库的情况下做到这一点,这样我就可以更好地了解Django。


当前回答

def some_view(request, *args, **kwargs):
    if kwargs.get('q', None):
        # Do something here ..

其他回答

如果你不知道参数的名称,想要使用它们,你可以使用request.GET.keys()或dict(request.GET)函数

Url参数可能被request.query_params捕获

def some_view(request, *args, **kwargs):
    if kwargs.get('q', None):
        # Do something here ..

这并不是您所需要的,但是这段代码有助于管理模板中的query_strings。

当URL是domain/search/?q=哈哈,你会使用request.GET。(‘问’,”)。

Q是您想要的参数,如果没有找到Q,则“”是默认值。

然而,如果你只是配置你的URLconf**,那么你从regex捕获的信息将作为参数(或命名参数)传递给函数。

如:

(r'^user/(?P<username>\w{0,50})/$', views.profile_page,),

那么在你的视图。py中

def profile_page(request, username):
    # Rest of the method