首页 > 编程语言 > 详细

python框架-django-09类视图

时间:2019-10-29 19:29:31      阅读:70      评论:0      收藏:0      [点我收藏+]

一:类视图

  1. 为什么使用类视图?

# 以注册请求逻辑为例

def register(request):
    
    if request.method == "GET":
        
        render(request, "register.html")

    if request.method == "POST":
        
        name = request.POST.get("name")

        age = request.POST.get("age")

        # 加入验证字段的逻辑

        # 存储数据库的逻辑

  上面的一段函数里面处理了两个逻辑,get逻辑和post逻辑,也能满足业务需求,那么我们为什么要使用类视图呢?

  使用类视图的好处:1.代码整洁,可读性强  2: 通过类的继承,直接可以使用类视图中的方法。

二:类视图使用的例子

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <form action="" method="POST">
     # 注意:id="username"导致,后端不能通过username的键取到输入的值。
        姓名:<input type="text" name="username" placeholder="用户名">
        密码:<input type="password" name="password" placeholder="密码">
        <input type="submit">
    
    </form>
</body>
</html>
技术分享图片

 

from django.conf.urls import url
from .views import RegisterView

urlpatterns = [
    url(r"^register/", RegisterView.as_view()),
]
from django.http import JsonResponse
from django.shortcuts import render
from django.views.generic import View

class RegisterView(View):
    """类是图处理注册"""

    def get(self,request):
        """处理get请求"""
        return render(request, "./register.html")

    def post(self,request):
        """处理post请求"""
        name = request.POST.get("username")
        password = request.POST.get("password")
        json_dict = {"name":name,"password":password}  # 给前端返回一个json字符串内容
        return JsonResponse(json_dict)
前端界面
技术分享图片

 

 三:装饰器在类视图中的应用

  使用场景:页面必须登录后才能访问,那么在进入类视图,调用get方法后,实现业务逻辑之前,先使用装饰器验证一下,用户是否已经登录。

from django.http import JsonResponse
from django.shortcuts import render
from django.views.generic import View

def decorate_login(func):
  def inner():
    func()
  return inner
class RegisterView(View): """类是图处理注册""" def get(self,request): """处理get请求""" return render(request, "./register.html") def post(self,request): """处理post请求""" name = request.POST.get("username") password = request.POST.get("password") json_dict = {"name":name,"password":password} return JsonResponse(json_dict)

 

python框架-django-09类视图

原文:https://www.cnblogs.com/meloncodezhang/p/11760563.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!