很多尝试/除了陈述

时间:2016-01-30 15:25:39

标签: python django

在我的views.py中,我有以下代码:

# Exceptions for GET requests
try:
    page = int(request.GET["page"])
except Exception:
    page = 1
try:
    price_from = request.GET["price_from"]
except Exception:
    price_from = -5
try:
    price_to = request.GET["price_to"]
except Exception:
    price_to = "all"
# ...
# Another 10+ try/except statements for now, but more will come

我需要从GET请求中获取变量,这可以但不必在链接中声明。有没有更清洁/更好的方法来做到这一点,或者在代码中有大量的尝试/除外是正常的吗?感谢。

1 个答案:

答案 0 :(得分:6)

只需使用get方法并提供默认值:

try:
    page = int(request.GET.get("page", 1))
except ValueError:
    page = 1
price_from = request.GET.get("price_from", -5)
price_to = request.GET.get("price_to", "all")

,即使您确实需要处理异常,也尝试只处理您期望的异常,否则其他错误可能会被忽视。