Python 在django中添加两个数字

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':

编辑:

我是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':        # 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函数的最后一行。你的代码和我的一样吗?这是个好地方