0

我尝试编写这些变量并将它们重新插入 Django 快捷方式的渲染函数中,这意味着只为一个变量编写至少 4 次。

例如:

def foo(request):

  bar = request.GET.get('bar')
  bar += 1
  result = {'bar':bar}
  render('parrot.html', result)

当我只写一个 var 时没关系,但是当涉及到 20 多个 GET var 时,这完全是一场灾难。

有什么建议吗?

4

1 回答 1

0

首先, 的返回值的类型request.GET.get('bar')strorNoneType而不是int,因此您不能简单地添加它1

其次,记住没有“魔法”,我想像下面这样重写代码,但仍然出现四次bar

def foo(request):
    try:
        bar = 1 + int(request.GET['bar'])
    except:
        bar = 0
    return render('parrot.html', {'bar':bar})

如果您不喜欢这种冗长,只需将try...except部分抽象为一个助手,例如get_int. 当有 20 个或更多的 var 进行操作时,您可能需要更高级别的抽象,例如Django 表单...

于 2013-02-03T10:04:22.637 回答