Python 在django中添加两个数字
编辑: 我是django的新手,我需要加上两个数字x和y x和y是来自用户的输入 这是我的观点Python 在django中添加两个数字,python,django,Python,Django,编辑: 我是django的新手,我需要加上两个数字x和y x和y是来自用户的输入 这是我的观点 from django.http import HttpResponseRedirect from django.http import HttpResponse from django.shortcuts import render from .forms import InputForm def add(request): if request.method == 'POST':
from django.http import HttpResponseRedirect
from django.http import HttpResponse
from django.shortcuts import render
from .forms import InputForm
def add(request):
if request.method == 'POST': # If the form has been submitted...
form = InputForm(request.POST) # A form bound to the POST data
if form.is_valid(): # All validation rules pass
cd = form.cleaned_data # Process the data in form.cleaned_data
input1 = cd['x']
input2 = cd['y']
output = input1 + input2
return HttpResponseRedirect(request,'/thanks/')# Redirect to new url
else:
form = InputForm() # An unbound form
return render(request, 'scraper/base.html', {'form': form })
def thanks(request,output):
return render(request, 'scraper/base.html', output)
这是我的表格
from django import forms
class InputForm(forms.Form):
x = forms.IntegerField(label='Value of x')
y = forms.IntegerField(label='Value of y')
这是我的URL.py
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^$', views.add, name='add'),
url(r'^/', views.thanks , name='thanks'),
]
这里是output.html
<html>
<head>
<title>Thanks</title>
</head>
<body>
<h1>Thanks</h1>
<h1> Output = {{output}} </h1>
</body>
</html>
谢谢
谢谢
输出={{Output}}
用户输入x和y值,然后单击“添加”按钮。输出应显示在一个新页面中,如output.html,那么如何做到这一点
我知道视图中有一些错误。我正在学习django。请指出这一点,并告诉我正确的实施方法
我挣扎了5个小时。我认为您使用的重定向不正确,您无法在
HttpResponseRedirect
中发送参数,请检查此处的修改并查看以获取更多解释:
视图.py
url(r'^thanks/(?P<output>\d+)/$', thanks),
def添加(请求):
如果request.method=='POST':#如果表单已提交。。。
表单=输入表单(request.POST)#绑定到POST数据的表单
如果form.is_valid():#所有验证规则都通过
cd=form.cleaned#数据#处理form.cleaned#数据中的数据
输入1=cd['x']
输入2=cd['y']
输出=输入1+输入2
返回HttpResponseRedirect('/Threak/{output}/'.format(output=output))#重定向到新url
其他:
form=InputForm()#未绑定的表单
返回呈现(请求'scraper/base.html',{'form':form})
url.py
url(r'^thanks/(?P<output>\d+)/$', thanks),
url(r'^Thork/(?P\d+/$),谢谢),
我认为您使用的重定向不正确,无法在HttpResponseRedirect
中发送参数,请检查此处的修改,并查看以了解更多说明:
视图.py
url(r'^thanks/(?P<output>\d+)/$', thanks),
def添加(请求):
如果request.method=='POST':#如果表单已提交。。。
表单=输入表单(request.POST)#绑定到POST数据的表单
如果form.is_valid():#所有验证规则都通过
cd=form.cleaned#数据#处理form.cleaned#数据中的数据
输入1=cd['x']
输入2=cd['y']
输出=输入1+输入2
返回HttpResponseRedirect('/Threak/{output}/'.format(output=output))#重定向到新url
其他:
form=InputForm()#未绑定的表单
返回呈现(请求'scraper/base.html',{'form':form})
url.py
url(r'^thanks/(?P<output>\d+)/$', thanks),
url(r'^Thork/(?P\d+/$),谢谢),
您可以使用会话存储输出,然后在下一个视图中检索它。会话框架允许您在每个站点访问者的基础上存储和检索任意数据
编辑views.py,如下所示-
def add(request):
if request.method == 'POST':
form = InputForm(request.POST)
if form.is_valid():
cd = form.cleaned_data
input1 = cd['x']
input2 = cd['y']
output = input1 + input2
# Save the result in the session
request.session['output'] = output
return HttpResponseRedirect('/thanks/')
else:
form = InputForm()
return render(request, 'scraper/base.html', {'form': form })
def thanks(request):
# Get the result from the session
output = request.session.pop('output', None)
return render(request, 'scraper/output.html', {'output':output})
您的URL.py应该是-
urlpatterns = [
url(r'^$', views.add, name='add'),
url(r'^thanks/$', views.thanks , name='thanks'),
]
您可以使用会话存储输出,然后在下一个视图中检索它。会话框架允许您在每个站点访问者的基础上存储和检索任意数据 编辑views.py,如下所示-
def add(request):
if request.method == 'POST':
form = InputForm(request.POST)
if form.is_valid():
cd = form.cleaned_data
input1 = cd['x']
input2 = cd['y']
output = input1 + input2
# Save the result in the session
request.session['output'] = output
return HttpResponseRedirect('/thanks/')
else:
form = InputForm()
return render(request, 'scraper/base.html', {'form': form })
def thanks(request):
# Get the result from the session
output = request.session.pop('output', None)
return render(request, 'scraper/output.html', {'output':output})
您的URL.py应该是-
urlpatterns = [
url(r'^$', views.add, name='add'),
url(r'^thanks/$', views.thanks , name='thanks'),
]
你的url.py看起来怎么样?根据错误消息,它有问题,请共享您的URL。pyTry:
HttpResponse('Result:{}.format(output))
而不是HttpResponseRedirect(…)
添加两个数字根本不是您真正的问题,您正试图解决的确切问题是什么?@Sayse我想学习如何从表单中获取两个输入,并将它们添加到单独的输出页面中。您的url.py看起来如何?根据错误消息,它有问题,请共享您的URL。pyTry:HttpResponse('Result:{}.format(output))
而不是HttpResponseRedirect(…)
添加两个数字根本不是您真正的问题,您正试图解决的确切问题是什么?@Sayse我想学习如何从表单中获取两个输入,并将它们添加到单独的输出页面中。您在谢谢函数的最后一行有一个缩进错误。@SanjayOrtiz也共享您的Thanke.html模板。这里似乎有错误。哦,抱歉,共享输出。htmlPlease请检查add函数的最后一行。你的代码和我的一样吗?如果谢谢
函数的最后一行出现缩进错误,这将是一个很好的位置。@SanjayOrtiz也可以共享您的Thanke.html模板。这里似乎有错误。哦,抱歉,共享输出。htmlPlease请检查add函数的最后一行。你的代码和我的一样吗?这是个好地方