当前位置: 首页 > 面试题库 >

Django中的MultiValueDictKeyError

麻宜春
2023-03-14
问题内容

我在执行get请求而不是在post请求期间收到此 错误

错误:-

/ StartPage /处的MultiValueDictKeyError

"Key 'username' not found in <QueryDict: {}>"

请求方法:GET请求URL:

http://127.0.0.1:8000/StartPage/

Django版本:1.4异常类型:MultiValueDictKeyError异常值:

“在“中找不到密钥’用户名’

views.py

from django.shortcuts import render_to_response
from django.views.decorators.csrf import csrf_exempt
from django.template import Context, RequestContext
@csrf_exempt
def main_page(request):
    return render_to_response('main_page.html')

@csrf_exempt
def Start_Page(request):
    if request.method == 'POST':
       print 'post', request.POST['username']
    else:
       print 'get', request.GET['username']
    variables = RequestContext(request,{'username':request.POST['username'],
           'password':request.POST['password']})
    return render_to_response('Start_Page.html',variables)

urls.py

from polls.views import *
urlpatterns = patterns('',
    # Examples:
     url(r'^$', main_page),
     url(r'^StartPage/$', Start_Page)

main_page.html

<html>
<head>
</head>
<body>
This is the body
<form method="post" action="/StartPage/">{% csrf_token %}
Username: <input type="text" name="username">
Password: <input type="password" name="password">
<input type="submit" value="Sign with password">
</form>
</body>
</html>

Start_Page.html

<html>
<head>
</head>
<body>
This is the StartPage
Entered user name ==   {{username}}
Entered password  == {{password}}
</body>
</html>

问题答案:

当然,你不能传递usernameGET参数,在获取http://127.0.0.1:8000/StartPage/页面。

尝试此操作并观察打印的用户名:http://127.0.0.1:8000/StartPage?username=test

使用get()并避免MultiValueDictKeyError错误:

request.GET.get('username', '')


 类似资料:
  • 问题内容: 所以我有个约会模特 我想在工具中实现这一点。我不确定如何开始。任何帮助表示赞赏。谢谢。 问题答案: 由于您的问题表明您没有尝试过任何东西,因此猜测您知道javascript,并尝试了一些完整的日历js。 假设您有一个名为Event的模型,用于在日历中显示不同的事件。 在您的views.py中 最后在模板中设置完整日历,其中包括必要的CSS,JS文件和HTML代码。然后, 动态地处理某些

  • 问题内容: 用作所有其他页面的基本模板。有导航栏,在导航栏中,我想显示用户收到的消息数。因此,我需要有一个变量一样的。 但是,应如何将此变量传递给它?每个模板都会扩展并由一个函数呈现。我认为返回所有函数不是一个好方法。有更好的方法来实现这一点吗?如何将此变量传递给所有模板? 问题答案: 看看: https //docs.djangoproject.com/en/dev/ref/templates/

  • 问题内容: 在我的应用程序中,当保存模型时,我需要保存更改的值(旧值和新值)。任何示例或工作代码? 我需要这个来预审内容。例如,如果用户更改了模型中的某些内容,则管理员可以在单独的表中查看所有更改,然后决定是否应用它们。 问题答案: 您还没有对您的特定用例或需求说太多。特别是,了解更改信息(需要存储多长时间?)将很有帮助。如果仅出于临时目的而存储它,@ S.Lott的会话解决方案可能是最好的。如果

  • Django所有地方都原生地支持Unicode数据。只要你的数据库能存储数据,你就可以安全地把Unicode字符串传递到模板、模型和数据库中。 本文档告诉你如果当你写用到非ASCII的数据或者模板的应用时,你需要知道什么。 创建数据库 确认你的数据库配置可以存储任意字符串数据。一般来讲,这意味着给它一个UTF-8或者UTF-16的编码方式。如果你用了更具约束性的编码 – 例如latin1 (iso

  • 问题内容: 无论如何,在Django中是否可以为双外键建模? 例如,如果我有以下表格:音频,覆盖,html和表格:timeline_item,它具有一个字段ID,以及一个指定音频,覆盖或html的字段类别… 有谁知道我将如何在Django中进行建模?甚至有可能吗? 问题答案: 听起来像是多态关联。也许您可以使用ContentTypes框架解决Django通用关系的问题。

  • 问题内容: Django视图指向一个函数,如果您只想更改一些功能,则可能会出现问题。是的,函数中可以有数百万个关键字参数,如果有语句,甚至可以更多,但是我在想更多的面向对象方法。 例如,我有一个显示用户的页面。该页面与显示组的页面非常相似,但仍与仅使用另一个数据模型不太相似。小组也有成员等… 一种方法是将视图指向类方法,然后扩展该类。有没有人尝试过这种方法或有其他想法? 问题答案: 我已经创建并使