Django 类视图与中间件(五)

一、类视图

1) 类方式来定义我们的视图,这种方式叫类视图
2) 好处:方便别人继承,调用,代码的可读性,复用性

二、模板设置

1.在根目录下,右键创建一个文件夹 templates

2.设置模板 settings 'DIRS': [BASE_DIR / 'templates'],

3.使用模板 render()

案例: 需求注册页面操作

(1) 定义视图方法
def register(request):
    '''
     注册信息
    :param request:输入用户名和密码
    :return:
    '''
    # 获取请求方法
    if request.method == 'GET':
        # 返回注册页面(html)
        # render() 渲染模板(html)
        # def render(request请求对象, template_name模板名,context=None, content_type=None, status=None, using=None)
        return render(request, 'register.html')
    else:
        # 处理post请求
        return HttpResponse('这是post请求!')

 注册页面

运行Get请求 

运行Post请求:postman测试 

(2) 定义类视图

from django.views.generic import View

# 类视图的写法:(必须继承View)
class RegisterView(View):
    '''
    类视图: 处理注册
    '''
    def get(self, request):
        return render(request, 'register.html')
        pass

    def post(self, request):
        return render(request, 'index.html')
        pass

  url配置:

  # 类视图的配置路由,注意:as_view() 必须有()
    path('registerView/', views.RegisterView.as_view()),

运行同上 

三、模板语法

  如: {{uname}} uname是后端数据变量

# 定义视图方法
def test1(request):
    uname = 'Teddy 泰迪'
    age = 5
    gender = '女'
    count = 1
    # context = {} 是字典key:value
    context = {'uname': uname, 'age': age, 'sex': gender, 'count': count}
    # return render(request,'welcome.html',context={'uname':uname,'age':age,'sex':gender,'count':count})
    return render(request, 'welcome.html', context=context)


def test2(request):
    uname = 'Teddy 泰迪'
    age = 5
    gender = '女'
    count = 1
    # context = {} 是字典key:value
    context = {'uname': uname, 'age': age, 'sex': gender, 'count': count}
    return render(request, 'index.html', context={'context':context})

前端html获取后端的数据

welcome.html

说明:lower 将大写修改成小写;  capfirst 将首字母大写; add:数字变量名 (自动加1) 

index.html 

四、中间件

1)  什么是中间件?
       Django中的中间件是一个轻量级、底层的插件系统。

2)  中间件能做什么?   

    Django 中间件是修改 Django request 或者 response 对象的钩子,可以理解为是介于 HttpRequest 与 HttpResponse 处理之间的一道处理过程。

3) 中间件作用:

  • 修改请求,即传送到 view 中的 HttpRequest 对象。
  • 修改响应,即 view 返回的 HttpResponse 对象。

4)执行流程

中间件组件配置在 settings.py 文件的 MIDDLEWARE 选项列表中。

配置中的每个字符串选项都是一个类,也就是一个中间件。

Django 默认的中间件配置:

自定义中间件

(1) 在app目录下创建 py 文件,名字自定义;

 (2) 在 settings.py 中的 MIDDLEWARE 里注册自定义的中间件类:

自定义中间件类的方法

自定义中间件类的方法有:process_request 和 process_response。

说明:

process_request 方法是在视图函数之前执行的。

当配置多个中间件时,会按照 MIDDLEWARE中 的注册顺序,也就是列表的索引值,顺序执行。

process_response 方法是在视图函数之后执行的。

当配置多个中间件时,会按照 MIDDLEWARE 中的注册顺序,也就是列表的索引值,倒序执行。

运行:

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值