Python 使用Django的加法器
我是Django的新手,试图让这段代码作为加法器工作Python 使用Django的加法器,python,django,Python,Django,我是Django的新手,试图让这段代码作为加法器工作 """Perform addition using Django""" template = """ <form method="post" action=" ">{% csrf_token %} <input type="text" name="a" > + <input type="text" name="b" > <input type="submit" value="="&g
"""Perform addition using Django"""
template = """
<form method="post" action=" ">{% csrf_token %}
<input type="text" name="a" > + <input type="text" name="b" >
<input type="submit" value="="> <input type="text" name="result >
</form>"""
但无法获得正确的渲染结果。不太确定哪里出了问题。
感谢您的评论- 最好不要在
action=”“
- 模板中缺少双引号
,您没有填写
、a
和b
结果。你还需要动作指向某个地方。另外,您缺少一个报价。最后,使用
而不是get
,因为提交表单不会更改任何持久性内容,例如数据库:post
在template = Template(""" <form method="get" action="{% url add %}">{% csrf_token %} <input type="text" name="a" value="{{a}}"> + <input type="text" name="b" value="{{b}}"> <input type="submit" value="="> <input type="text" name="result" value="{{result}}"> </form>""")
中,需要名称才能使上面的url.py
标记正常工作:url
urlpatterns = patterns('', url(r'^add/$', 'myapp.views.add', name='add'), )
或者更简洁的
和request.POST.get('a',0)
我可以在一个try-except块中组合如下:request.POST.get('b',0)
try:a=int(request.POST.get('a',0))b=int(request.POST.get('b',0))除了:a=0b=0,它也可以很好地工作,但不确定这样做是否是一种好的做法@奥克姆@MikeDeSimone@user1282634没关系,如果您担心捕获到可能的意外错误,您可以将范围缩小到
,ValueError除外。我建议使用单独的
块,这样只有断开的输入更改为try
。0
template = Template(""" <form method="get" action="{% url add %}">{% csrf_token %} <input type="text" name="a" value="{{a}}"> + <input type="text" name="b" value="{{b}}"> <input type="submit" value="="> <input type="text" name="result" value="{{result}}"> </form>""")
def add(request): try: a = int(request.POST.get('a', 0)) except: a = 0 try: b = int(request.POST.get('b', 0)) except: b = 0 c = RequestContext(request, {'a': a, 'b': b, 'result': a + b}) return HttpResponse(template.render(c))
urlpatterns = patterns('', url(r'^add/$', 'myapp.views.add', name='add'), )