这是my views.py文件
from django.shortcuts import render
def home(request):
return render(request, 'home.html',{'name':'irtiza'})
def add(request):
val1 = int(request.GET['num1'])
val2 = int(request.GET['num2'])
res = val1 + val2
return 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})
出现此错误
url.py文件
from django.urls import path
from . import views
urlpatterns = [
path("",views.home,name="home"),
path("add", views.add, name="add")
]
home.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 %}
Result.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})
在/添加时出现多值错误
“num1”
请求方法:获取
请求URL:http://127.0.0.1:7000/add?csrfmiddlewaretoken=t6mVWboKI37vxW3zDbVmpnB3j3g89EzjFhikDDMrB4qVEfrNyqG5pebeXgDLAFE0&num1=3&num1=3
Django版本:3.0.3
异常类型:多值DictKeyError
异常值:
“num1”
异常位置:C:\Users\irtiza\AppData\Local\Continuum\anaconda3\lib\site packages\django\utils\datastructures.py,位于getitem第78行
Python可执行文件:C:\Users\irtiza\AppData\Local\Continuum\anaconda3\Python.exe
Python版本:3.7.4
我现在应该如何解决此错误。这只是一个简单的函数来添加两个数字。请帮助我
基本上,home.html中的表单中缺少了(method=“post或GET”)
我所作的更改如下:
home.html
views.py
然后它工作得很好
您在url中传递了两次
num1
,如下所示改成吹
从下面得到它
并将这一行从您的表单中更改如下
拆下方括号。这不是必需的
相关问题 更多 >
编程相关推荐