gpt4 book ai didi

python - 如何使用 Django 中检索表单的数据(对于计算器应用程序)

转载 作者:太空宇宙 更新时间:2023-11-03 14:56:08 25 4
gpt4 key购买 nike

我是 Django 新手。即使在阅读、观看并遵循许多教程和指南之后,事情仍然无法顺利进行,我需要帮助。

我正在制作一个非常简单的计算器应用程序,为一个更复杂的计算器应用程序做准备,我将从 Python shell 重构/移植该应用程序。简单计算器的基本思想是这样的:我在 1 个应用程序上有 4 个页面。它们分别包含加法、减法、乘法和除法函数。我有一个工作侧菜单(使用 Bootstrap 和一些复制的代码)来在页面之间导航。每个页面上都有一个带有两个字符域和一个提交按钮的表单,并且应该返回与该页面关联的操作的结果。现在我只关注“添加”页面,因为其他页面只是复制的问题。

目前,我认为我有一个获取两个输入的工作表单,但我不知道如何将这两个输入作为我可以添加以获得结果的变量。

这是我到目前为止的代码:

View .py

from __future__ import unicode_literals

from django.http import HttpResponse

from django.shortcuts import render
from django.views.decorators.csrf import csrf_exempt

from .forms import AddForm

@csrf_exempt
def web_adder(request):
# if this is a POST request we need to process the form data
if request.method == 'POST':
# create a form instance and populate it with data from the request:
form = AddForm(request.POST)
# check whether it's valid:
if form.is_valid():
# process the data in form.cleaned_data as required

# redirect to a new URL:
return web_adder_out(form)

# if a GET (or any other method) we'll create a blank form
else:
form = AddForm()

return render(request, 'addercontent.html', {'form': form})

def web_adder_out(request, form):
return render(request, 'addercontentout.html', {'content':[form.addend0 + form.addend1]})

#haven't gotten to this stuff yet
def web_subtracter(request):
return render(request, 'subtractercontent.html')

def web_multiplier(request):
return render(request, 'multipliercontent.html')

def web_divider(request):
return render(request, 'dividercontent.html')

url.py

from django.conf.urls import url

from . import views

urlpatterns = [
url(r'^$', views.web_adder, name='web_adder'),
url(r'^web_sub$', views.web_subtracter, name='web_subtracter'),
url(r'^web_mul$', views.web_multiplier, name='web_multiplier'),
url(r'^web_div$', views.web_divider, name='web_divider'),
]

表单.py

from django import forms

class AddForm(forms.Form):
addend0 = forms.CharField(label='first addend', max_length=100)
addend1 = forms.CharField(label='second addend', max_length=100)

addercontent.html

{% extends "header.html" %}
{% block content %}
<p>This is a web adder</p>
<form action="" method="post">
{% csrf_token %}
{{ form }}
<input type="submit" value="Submit" />
</form>
{% endblock %}

addercontentout.html

{% extends "header.html" %}
{% block content %}
{% for c in content%}
<p>Result: {{c}}</p>
{% endfor %}
{% endblock %}

(我知道我没有显示很多 html 文件,但它们应该不重要)

在上面的代码中,我知道 web_adder 中的 form 与 web_adder_out 中的 form 不同,这就是我不知所措的地方。尽管看到其他错误我不会感到惊讶。

我正在使用Python 2.7。提前致谢。

最佳答案

您可以像这样处理表单中的每个单独字段:

form.cleaned_data['field_name']

这将为您提供该字段的实际值。

您的表单示例如下:

form.cleaned_data['addend0']

这将为您提供 addend0 字段的 POST 值。

希望这有帮助!

关于python - 如何使用 Django 中检索表单的数据(对于计算器应用程序),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45562117/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com