如何在传递到Django中的实际视图之前将URL路由到公共方法

时间:2016-09-16 13:00:29

标签: python django django-models django-views django-rest-framework

这是我的代码: -

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 ...),然后再转到各自的方法。

1 个答案:

答案 0 :(得分:2)

使用decorator注释相关视图,其中包含您在调用视图之前要执行的逻辑。

请先查看Python - Decorators

How to write a custom decorator in django?

如果您想对所有请求执行此操作,无论相关视图如何,那么您应该考虑编写middleware。见how to setup custom middleware in django