初学Django:第九天,类视图和中间件

一、类视图

1.编写用户注册的html网页,代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<form action="#" method="post">
    username: <input  type="text" id="username" name="username" > <br>
    password : <input type="password" id="password" name="password"> <br>
    register: <button  type="submit" ><a href="{% url 'books:temp4' %}" >注册</a> </button>

</form>
</body>
</html>

 2.创建一个类视图代码如下:

# 定义一个注册的类视图
from django.views import View #导入
class RegisterView(View):
    def get(self,request):
        return render(request,'register.html')
    def post(self,request):
        # 获取数据
        username = request.POST.get('username')
        print(username)
        return JsonResponse({'username':username})

 3.设置类视图的路由

path('temp4/',views.temp4,name='temp4'),
path('register/', views.RegisterView.as_view(), name='register'), # 类视图

 4.运行结果

 二、中间件

1.dj11文件夹路径下settings.py

# 中间件 
MIDDLEWARE = [
    # 从上往下的执行 自带的中间件  请求是从上往下执行  ,响应是从下往上执行
    # http   浏览器访问的时候  重定向  HTTPS
    'django.middleware.security.SecurityMiddleware',
    # request.session  处理
    'django.contrib.sessions.middleware.SessionMiddleware',
    # 是否允许使用的浏览器类型
    'django.middleware.common.CommonMiddleware',
    # csrf 攻击
    # 'django.middleware.csrf.CsrfViewMiddleware',
    # 和新用户相关的
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    # 发送信息内容
    'django.contrib.messages.middleware.MessageMiddleware',
    # Frame  攻击
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
    'books.middleware.out02',
    'books.middleware.out01',
]

 2.E:\Python 3.7.9\Django-object\dj11\books\新建middleware.py

def out01(fuc):
    print('调用前1')
    def inner(*args,**kwargs):
        print('执行函数前1')
        data = fuc(*args,**kwargs)
        print('执行函数后1')
        return data
    return inner

def out02(fuc):
    print('调用前2')
    def inner(*args,**kwargs):
        print('执行函数前2')
        data = fuc(*args,**kwargs)
        print('执行函数后2')
        return data
    return inner

 3.运行manage.py

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Django 中有两种主要的视图方式:类视图和函数视图。它们各自有自己的优势和适用场景。下面是 Django视图和函数视图的对比: 1. 类视图: - 类视图是基于类的视图,通过继承 Django 提供的基础类来实现。 - 类视图提供了更强大的功能和更高级的抽象,可以处理更复杂的逻辑和场景。 - 类视图提供了一组标准的 HTTP 方法(如 GET、POST、PUT 等)对应于不同的请求类型,使得处理不同请求类型的逻辑更加清晰。 - 类视图具有可重用性,可以通过继承来扩展和定制。 - 类视图通常用于需要处理多个请求类型、需要复杂逻辑或需要使用 Mixin 的场景。 2. 函数视图: - 函数视图是基于函数的视图,直接编写函数来处理请求和生成响应。 - 函数视图简单直观,适用于处理简单的逻辑和场景。 - 函数视图可以更加灵活地处理请求和响应,可以直接控制返回的数据类型和格式。 - 函数视图可以在一个文件中编写,使得代码结构更简洁。 - 函数视图通常用于处理简单的请求、快速原型开发或者需要直接控制请求和响应的场景。 总体而言,类视图适用于处理复杂的逻辑和场景,具有更高级的抽象和可重用性;而函数视图则适用于处理简单的逻辑和场景,具有更灵活的请求和响应控制。具体选择哪种视图方式取决于项目的需求和个人偏好。在实际开发中,通常会根据具体情况来选择使用类视图或函数视图

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值