亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

MultiValueDictKeyError at /add, Request method :

MultiValueDictKeyError at /add, Request method :

HUH函數 2022-08-25 15:52:18
這是我 views.py 文件from django.shortcuts import renderdef home(request):    return render(request, 'home.html',{'name':'irtiza'})def add(request):val1 = int(request.GET['num1'])val2 = int(request.GET['num2'])res = val1 + val2return render(request, "result.html",{'result': res})當我運行此代碼時,我收到此錯誤,錯誤然后我嘗試了這個代碼:def add(request):    val1 = int(request.GET.get(['num1']))    val2 = int(request.GET.get(['num2']))    res = val1 + val2    return render(request, "result.html",{'result': res})發生此錯誤。在此輸入圖像描述urls.py 文件from django.urls import path from . import viewsurlpatterns = [    path("",views.home,name="home"),    path("add", views.add, name="add")]首頁.html 文件{% extends 'base.html' %}{% block content %}<h1> hello  {{name}} </h1><form action="add">    {% csrf_token %}    Enter 1st number : <input type="text" name="num1"><br>    Enter 2nd number : <input type="text" name="num2"><br>    <input type="submit"></form>{% endblock %}結果.html文件{% extends 'base.html' %}{% block content %}    Result : {{result}}{% endblock %}當我嘗試POST功能時,它會給出下面提到的錯誤from django.shortcuts import render# Create your views here.def home(request):    return render(request, 'home.html',{'name':'irtiza'})def add(request):    val1 = int(request.POST['num1'])    val2 = int(request.POST['num2'])    res = val1 + val2    return render(request, "result.html",{'result': res})MultiValueDictKeyError at /add 'num1' Request Method: GET Request URL: http://127.0.0.1:7000/add?csrfmiddlewaretoken=t6mVWboKI37vxW3zDbVmpnB3j3g89EzjFhikDDMrB4qVEfrNyqG5pebeXgDLAFE0&num1=3&num1=3 Django Version: 3.0.3 Exception Type: MultiValueDictKeyError Exception Value:'num1' Exception Location: C:\Users\irtiza\AppData\Local\Continuum\anaconda3\lib\site-packages\django\utils\datastructures.py in getitem, 第 78 行 Python 可執行文件: C:\Users\irtiza\AppData\Local\Continuum\anaconda3\python.exe Python 版本: 3.7.4我現在應該做什么來解決這個錯誤。這只是一個將兩個數字相加的簡單函數。請幫幫我。
查看完整描述

3 回答

?
慕虎7371278

TA貢獻1802條經驗 獲得超4個贊

您在網址中經過兩次,如下所示...num1


url - http://127.0.0.1:7000/add?csrf.......&num1=2&num1=3

改變它吹...


url - http://127.0.0.1:7000/add?csrf.......&num1=2&num2=3

并通過以下方式獲得它...


def add(request):


    val1 = int(request.GET.get('num1'))

    val2 = int(request.GET.get('num2'))

    res = val1 + val2


    return render(request, "result.html",{'result': res})

并從您的表單更改此行,如下所示...


Enter 2nd number : <input type="text" name="num2"><br>


查看完整回答
反對 回復 2022-08-25
?
精慕HU

TA貢獻1845條經驗 獲得超8個贊

刪除方括號。它不是必需的。

val1 = int(request.GET.get('num1'))
val2 = int(request.GET.get('num2'))


查看完整回答
反對 回復 2022-08-25
?
慕哥9229398

TA貢獻1877條經驗 獲得超6個贊

基本上我在家里的形式上失蹤了(方法=“post或GET”).html


我所做的更改包括:


家.html


{% extends 'base.html' %}


{% block content %}


<h1> hello  {{name}} </h1>


<form action="add" method="POST">


    {% csrf_token %}


    Enter 1st number : <input type="text" name="num1"><br>

    Enter 2nd number : <input type="text" name="num2"><br>

    <input type="submit">


</form>


{% endblock %}

views.py


from django.shortcuts import render


def home(request):

    return render(request, 'home.html',{'name':'irtiza'})


def add(request):


val1 = int(request.POST['num1'])

val2 = int(request.POST['num2'])

res = val1 + val2


return render(request, "result.html",{'result': res})

然后它工作正常。


查看完整回答
反對 回復 2022-08-25
  • 3 回答
  • 0 關注
  • 147 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號