zoukankan      html  css  js  c++  java
  • 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>
  • 相关阅读:
    记录:2019-06-15
    安卓APP环境搭建
    delphi 各版本的特性
    php.ini文件下载
    mysql数据库目录my.ini的内容
    Windows2008 R2 X64 PHP环境搭建步骤
    窗口关闭时弹出内存不能为read
    Delphi编译选项
    Android中EditText无法再次获得焦点
    Android设置分隔线
  • 原文地址:https://www.cnblogs.com/lixiang1013/p/7748107.html
Copyright © 2011-2022 走看看