现在我有这个我有3个字段的地方:
<form action="/calc/" method="get">
<input type="text" name="pv">
<input type="text" name="n">
<input type="text" name="r">
<input type="submit" value="Search">
</form>
我正如此定义:
def calc(request):
if 'pv' in request.GET and 'n' in request.GET and 'r' in request.GET:
pv = request.GET['pv']
n = request.GET['n']
r = request.GET['r']
return render(request, 'main/index.html',
{
'pv': pv,
'n': n,
'r': r,
})
return render(request, 'main/index.html')
是否有更好/更短的方式来编写if条件语句?而不是写'如果'pv'和'n'和'r'等...?
答案 0 :(得分:1)
您可以使用if all(x in request.GET for x in ['pv', 'n', 'r']):
.get
但是,如果没有全部3,有人会打电话给这个网址吗?可能值得一试。
您可以使用.get
字典查找并提供不存在的默认值,request.GET.get('pv')
request.GET.get('pv', 'default')
默认情况下将返回None
_errorListProvider.Tasks.Add(new ErrorTask
{
Category = TaskCategory.User,
ErrorCategory = category,
HelpKeyword = "Automation Id Help text",
Line = 12,
Column = 12,
Text = message
});
此外,您不应直接引用它们,而应该只创建一个表单,让django为您处理所有这些。
答案 1 :(得分:1)
我建议使用Django Form类。 https://docs.djangoproject.com/en/1.10/topics/forms/
beedo.py
并在视图中创建此CalcForm的实例以在模板中呈现。
from django import forms
class CalcForm(forms.Form):
pv = forms.CharField(max_length=100)
n = forms.CharField(max_length=100)
r = forms.CharField(max_length=100)
这里的优点是Django会为您进行验证。如果您的函数访问数据库,Django也会阻止SQL注入。