我目前正在定义正则表达式,以便捕获URL中的参数,如教程中所述。我如何访问参数从URL作为HttpRequest对象的一部分?
我的HttpRequest。GET当前返回一个空的QueryDict对象。
我想学习如何在没有库的情况下做到这一点,这样我就可以更好地了解Django。
我目前正在定义正则表达式,以便捕获URL中的参数,如教程中所述。我如何访问参数从URL作为HttpRequest对象的一部分?
我的HttpRequest。GET当前返回一个空的QueryDict对象。
我想学习如何在没有库的情况下做到这一点,这样我就可以更好地了解Django。
当前回答
这些查询目前有两种方式。如果您想访问查询参数(GET),您可以查询以下命令:
http://myserver:port/resource/?status=1
request.query_params.get('status', None) => 1
如果你想访问POST传递的参数,你需要通过这种方式访问:
request.data.get('role', None)
使用'get()'访问字典(QueryDict),可以设置一个默认值。在上述情况下,如果没有通知'status'或'role',则值为None。
其他回答
当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
使用GET
request.GET["id"]
使用POST
request.POST["id"]
这并不是您所需要的,但是这段代码有助于管理模板中的query_strings。
我想分享一个可以节省你时间的小窍门。 如果你计划在urls.py文件中使用这样的东西:
url(r'^(?P<username>\w+)/$', views.profile_page,),
这意味着www.example.com/<用户名>。一定要把它放在URL条目的末尾,否则,它很容易与下面的URL条目发生冲突,即访问其中一个URL条目会给你一个漂亮的错误:用户匹配查询不存在。 我自己也经历过;希望能有所帮助!
这些查询目前有两种方式。如果您想访问查询参数(GET),您可以查询以下命令:
http://myserver:port/resource/?status=1
request.query_params.get('status', None) => 1
如果你想访问POST传递的参数,你需要通过这种方式访问:
request.data.get('role', None)
使用'get()'访问字典(QueryDict),可以设置一个默认值。在上述情况下,如果没有通知'status'或'role',则值为None。