【发布时间】:2021-10-07 03:10:25
【问题描述】:
我是学习 Django/Python 的新手,希望能得到一些帮助。这是一项任务,我对最后一部分感到困惑。我们需要从用户那里获取输入(名称为字符串;体重、身高英寸和身高英尺为整数)并计算 bmi,显示 {{name}} 的 bmi 为 {{bmi}}
我的那部分工作正常,但我要做的第二部分是检查输入是否有效,这不是一个字符串,它应该是一个 int,而不是一个负数。我应该把这个放到课堂上。我正在阅读有关 is_valid() 的信息,但我还没有使用过它,也不完全确定该怎么做。我猜它必须是一个 if else 语句。
views.py
class Home(View):
def get(self, request):
return render(request, 'home.html')
def post(self, request):
n = str(request.POST["name"])
w = int(request.POST["weight"])
hi = int(request.POST["heightinches"])
hf = int(request.POST["heightfeet"])
h = (hf*12) + hi
bmi = (703*w) / (h*h)
return render(request, 'response.html',{"name":n,"heightinches":hi,"heightfeet":hf,"weight":w,"height":h,"bmi":bmi}
home.html
{% load static %}
<html>
<head><title>Home</title></head>
<body>
<h1>Hello Repl.it</h1>
<form action="" method="post">
{% csrf_token %}
name: <input type="text" name="name" id="name"/> <br>
weight: <input type="text" name="weight" id="weight"/> pounds<br>
height: <input type="text" name="heightinches" id="heightinches"/> inches<br>
<input type="text" name="heightfeet" id="heightfeet"/> feet<br>
<input type="submit"/>
</form>
</body>
</html>
response.html
{% load static %}
<html>
<head><title>Home</title></head>
<body>
{{name}}'s BMI is {{bmi|floatformat:2}}
<p><a href="home.html">Back</a></p>
</body>
</html>
提前感谢您的帮助!我的导师不是最容易找到的,所以我希望我在这里能有更好的运气:S
【问题讨论】:
-
通读Working with forms和The Forms API上的文档,当然你可以使用if-else,但是一个表单会为你处理验证/清理。