zoukankan      html  css  js  c++  java
  • Django FBV和CBV

    1. FBV
    # 1
    def add_publisher(request):
        error_msg = ""
        # 如果是POST请求,我就取到用户填写的数据
        if request.method == "POST":
            new_name = request.POST.get("publisher_name", None)
            if new_name:
                # 通过ORM去数据库里新建一条记录
                models.Publisher.objects.create(name=new_name)
                # 引导用户访问出版社列表页,查看是否添加成功  --> 跳转
                return redirect("/publisher_list/")
            else:
                error_msg = "出版社名字不能为空!"
        # 用户第一次来,我给他返回一个用来填写的HTML页面
        return render(request, "add_publisher.html", {"error": error_msg})
    
    # 2
    url(r'^publisher_list/', views.publisher_list),
    
    
    1. CBV
    # 1
    from django.views import View
    # CBV版 添加新的出版社
    class AddPublisher(View):
        def get(self, request):
            print(request.path_info)
            print(request.body)
            print("=" * 120)
            return render(request, "add_publisher.html")
    
        def post(self, request):
            print(request.body)
            print("=" * 120)
            new_name = request.POST.get("publisher_name", None)
            if new_name:
                # 通过ORM去数据库里新建一条记录
                models.Publisher.objects.create(name=new_name)
                # 引导用户访问出版社列表页,查看是否添加成功  --> 跳转
                return redirect("/publisher_list/")
            else:
                error_msg = "出版社名字不能为空!"
                return render(request, "add_publisher.html", {"error": error_msg})
    
    # 2
    url(r'^publisher_list2/', views.reportInfoListView.as_view()),
    
  • 相关阅读:
    彻底弄懂flex布局
    剖析Vue原理&实现双向绑定MVVM
    【Mysql进阶-3】大量实例悟透EXPLAIN与慢查询
    mysql 排序
    从ReentrantLock的实现看AQS的原理及应用
    Java面试之Synchronized解析
    基于vue-cli搭建vue项目开发环境
    在win环境下使用yarn安装 vue-cli
    优化器追踪示例
    MySQL常见的七种锁详细介绍
  • 原文地址:https://www.cnblogs.com/amize/p/14318764.html
Copyright © 2011-2022 走看看