• 7)django-示例(cbv)


    CBV(class base view)一个url根据method方式调用相应的方法。method常用有get,post

    如果是GET请求,Home类会调用get方法,如果是POST提交数据,则类会调用 post方法

     CBV与FBV经常用到,建立两种方式都使用。

    1)urls.py  

    url(r'^home/', views.Home.as_view()), 以不同的方式执行不同的方法,比如get,post等 #views.类名.as_view()
    from app01 import views
    urlpatterns = [
        url(r'^admin/', admin.site.urls),
        url(r'^index/', views.index),
        url(r'^login/', views.login),
        url(r'^home/', views.Home.as_view()),
        url(r'^detail-(d+).html',views.detail), #动太路由
    ]

     2)views.py

        #CBV django内容是怎么完的过程?
        #根据提交的头部和内容,头部包括URL,method, django通过反射找到相应的方法。
       所以django肯定有dispath,可以自己重写dispath,增加自己功能


      需要导入from django.views import View
    #CBV
    from django.views import View
    class Home(View):
        #CBV django内容是怎么完的过程?
        #根据提交的头部和内容,头部包括URL,method, django通过反射找到相应的方法。所以django肯定有dispath,可以自己重写dispath,增加自己功能
    
        def dispatch(self, request, *args, **kwargs):
            print("before")
            result=super(Home,self).dispatch( request, *args, **kwargs)#调用父类的dispath
            print("after") #相档于装饰器功能
            return result
    
        def get(self,request):
            print(request.method)
            return render(request,"home.html")
    
        def post(self,request):
            print(request.method)
            return render(request,"home.html")

    3.模板home.html

      

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <link rel="stylesheet" href="/static/common.css">
    </head>
    <body>
        <form action="/home/" method="post">
            <input type="text" name="user" />
            <input type="submit" value="+">
        </form>
        <script src="/static/jquery-1.12.3.js"></script>
    </body>
    </html>
  • 相关阅读:
    开源方案搭建可离线的精美矢量切片地图服务-2.PostGIS+GeoServer矢量切片
    开源方案搭建可离线的精美矢量切片地图服务-1.开篇(附成果演示地址)
    c#实现超实用的<证件照换底色>小工具
    Linux ~ termios 串口编程
    JETSON TK1 ~ 基于eclipse下开发ROS
    JETSON TK1 ~ 控制GPIO
    JETSON TK1~Ubuntu14.04 Armhf源更新
    有意思的代码注释
    RaspBerry Pi3 ~ 内核编译
    C ~ 指针的运算
  • 原文地址:https://www.cnblogs.com/lixiang1013/p/7748107.html
Copyright © 2020-2023  润新知