0

之前,這裏是我的代碼如下所示: -哪有我的路線我的網址,以一個共同的方法傳遞給實際的視圖在Django

url.py文件: -

from rest_framework import routers 
from view_user import user_signup,user_login 

router = routers.DefaultRouter() 

urlpatterns = [ 
    url(r'^api/v1/user_signup',csrf_exempt(user_signup)), 
    url(r'^api/v1/user_login',csrf_exempt(user_login)) 
] 

view_user.py文件: -

def user_signup(request): 
    try: 
     if request.method == 'POST': 
      json_data = json.loads(request.body) 
     return JsonResponse(result, safe=False) 
    except Exception as e: 
       logger.error("at method user : %s", e) 

所以,當我打電話的網址: - http://myserver/api/v1/user_signup 它去view_user.py文件 「user_signup」 的方法。

但我想要的是我應該能夠驗證我的請求,然後再進入user_signup方法。

我希望在所有方法(例如: - user_signup,user_login ...)到達我的服務器之前,它將轉到各自的方法進行驗證。

回答

2

使用包含要在調用視圖之前執行的邏輯的decorator註釋有關視圖。

請參閱Python - Decorators首先。

而且How to write a custom decorator in django?

如果你想這樣做的所有請求,無論是相關的觀點,那麼你應該考慮寫一個middleware。請參閱how to setup custom middleware in django

+0

非常感謝您的建議。但我必須爲每種方法添加裝飾器。在轉發到各自的方法之前,有什麼方法可以驗證發送給Django的所有請求? – Vinay

+1

@Vinay你應該考慮寫一個[中間件](https://docs.djangoproject.com/en/1.10/topics/http/middleware/)。請參閱[如何在django中設置自定義中間件](http://stackoverflow.com/questions/18322262/how-to-setup-custom-middleware-in-django) –

+0

謝謝我將研究它。 – Vinay

相關問題