这是我的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})
/add“num1”请求方法处的MultiValueDictKeyError:GET请求URL:http://127.0.0.1:7000/add?csrfmiddlewaretoken=t6mVWboKI37vxW3zDbVmpnB3j3g89EzjFhikDDMrB4qVEfrNyqG5pebeXgDLAFE0
我现在应该怎么做才能解决这个错误。这只是一个简单的加法函数。请帮帮我。
您在url中传递了两次< code>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>
删除方括号。这不是必需的。
val1 = int(request.GET.get('num1'))
val2 = int(request.GET.get('num2'))
基本上我在家里的形式上缺少(方法=“发布或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})
然后就可以正常工作了。