在我的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请求中获取变量,这可以但不必在链接中声明。有没有更清洁/更好的方法来做到这一点,或者在代码中有大量的尝试/除外是正常的吗?感谢。
答案 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")
,即使您确实需要处理异常,也尝试只处理您期望的异常,否则其他错误可能会被忽视。