zoukankan      html  css  js  c++  java
  • Diango路由映射FBV和CBV

    django中请求处理方式有2种:FBV(function base views) 和 CBV(class base views),换言之就是一种用函数处理请求,一种用类处理请求。

    FBV

    # url.py
    from django.conf.urls import url, include
    from mytest import views
     
    urlpatterns = [
        url(r‘^index/‘, views.index),
    ]
    
    # views.py
    from django.shortcuts import render
     
     
    def index(req):
        if req.method == ‘POST‘:
            print(‘method is :‘ + req.method)
        elif req.method == ‘GET‘:
            print(‘method is :‘ + req.method)
        return render(req, ‘index.html‘)

    CBV

    # urls.py
    from mytest import views
     
    urlpatterns = [
        # url(r‘^index/‘, views.index),
        url(r‘^index/‘, views.Index.as_view()),
    ]
    
    # views.py
    from django.views import View
    
     
    class Index(View):
        def get(self, req):
            print(‘method is :‘ + req.method)
            return render(req, ‘index.html‘)
     
        def post(self, req):
            print(‘method is :‘ + req.method)
            return render(req, ‘index.html‘)
    
    # 注:类要继承 View ,类中函数名必须小写。
    # cbv 模式下继承了django的view类
    # 在请求来临的时候,会调用继承类的 dispatch 方法
    # 通过反射的方法它会去调用自己写的视图函数, 那么这便是一个切入点,可以在自己的 cbv 视图中,重写这个方法。 
    class View(object):
    
        def dispatch(self, request, *args, **kwargs):
            # Try to dispatch to the right method; if a method doesn't exist,
            # defer to the error handler. Also defer to the error handler if the
            # request method isn't on the approved list.
            if request.method.lower() in self.http_method_names:
                handler = getattr(self, request.method.lower(), self.http_method_not_allowed)
            else:
                handler = self.http_method_not_allowed
            return handler(request, *args, **kwargs)
    CBV模式下的一个拓展
  • 相关阅读:
    linux inode索引节点使用率100% 解决
    Linux常用命令
    mongodb常用命令
    抓包工具简介:fiddler、charles
    博客园自定义更换背景
    ant+jmeter应用
    BeanShell断言
    jmeter 常用函数(一):__Random
    git常见错误解决方法
    react环境搭建
  • 原文地址:https://www.cnblogs.com/huangjm263/p/8781621.html
Copyright © 2011-2022 走看看