django中的视图层

1.什么是视图层

简单来说,就是用来接收路由层传来的请求,从而做出相应的响应返回给浏览器

2.视图层的格式与参数说明

2.1基本格式

from django.http import HttpResponse
def page_2003(request):
    html = '<h1>第一个网页</h1>'
    return HttpResponse(html)
# 注意需要在主路由文件中引入新创建的视图函数

2.2带有转换器参数的视图函数

def test(request, num):
    html = '这是我的第%s个网页' % num
return HttpResponse(html)
# 添加转换器的视图函数,request后面的参数num为path转换器中的自定义名

2.3带有正则表达式参数的视图函数

同带有转换器参数的视图函数

2.4重定向的视图函数

from django.http import HttpResponse,HttpResponseRedirect
def test_request(request):--注意path函数里也要绑定test_request这个路径
return HttpResponseRedirect('page/2003/')--重定向到127.0.0.1:8000/page/2003这个页面去

2.5判断请求方法的视图函数

def test_get_post(request):
if request.method == 'GET':
    pass   
elif request.method == 'POST':
    pass

2.6加载模板层的视图函数

使用render()直接加载并相应模板语法:
​from django.shortcuts import render
​def test_html(request):   
​ return render(request, '模板文件名', 字典数据)
注意视图层的所有变量可以用local()方法全部自动整合成字典传到render的最后一个参数里

2.7返回JsonResponse对象的视图函数

json格式的数据的作用:

前后端数据交互需要用到json作为过渡,实现跨语言传输数据。

格式:

from django.http import JsonResponse
def ab_json(request):
    user_dict={'username':'json,我好喜欢','password':'1243'}
return JsonResponse(user_dict,json_dumps_params={'ensure_ascii':False})
# 字典传入时需要设置json_dumps_params格式化字符串,不然字典里的中文会报错
    list = [111,22,33,44]
return JsonResponse(list,safe=False)
# 列表传入序列化时需要设置safe为false ,不然会报错

2.8视图层的FBV和CBV格式

视图函数既可以是函数(FBV)也可以是类(CBV)

1.FBV
def index(request):
return HttpResponse('index')

2.CBV
# CBV路由
    pathr'^login/',views.MyLogin.as_view())
# CBV视图函数
from django.views import View
class MyLogin(View):
def get(self,request):
return render(request,'form.html')
def post(self,request):
return HttpResponse('post方法')
"""
FBV和CBV各有千秋
CBV特点
  能够直接根据请求方式的不同直接匹配到对应的方法执行

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:django中的视图层 - Python技术站

(0)
上一篇 2023年4月2日
下一篇 2023年4月2日

相关文章

  • drf接口文档

    接口文档 接口编写已经写完了,需要编写接口文档,给前端的人使用 -请求地址 -请求方式 -支持的编码格式 -请求参数(get,post参数) -返回格式示例 在公司的写法 1)直接使用word或者md写2)使用接口文档平台,在接口文档平台录入(Yapi(百度开源的自己搭建),第三方平台(收费),自己开发接口文档平台) -https://www.showdoc…

    2023年4月2日
    00
  • 权限类与频率类

    权限类 主要用途:用户登录了,某个接口可能只有超级管理员才能访问,普通用户不能访问 案列:出版社的所有接口,必须登录,而且是超级管理员才能访问 分析步骤 第一步:写一个类,继承BasePermission 第二步:重写has_permission方法 第三步:在方法校验用户时候有权限(request.user就是当前登录用户) 第四步:如果有权限,返回Tru…

    2023年4月2日
    00
  • 上线流程

    上线流程 上线前准备 首先将跑在本地版本的项目,上传至远端(gitee、github上) 重新复制一份项目的配置文件,可以命名为pro.py(dev为开发阶段的配置文件,pro为上线的配置文件) 在pro文件内,修改以下配置项: # 将调式模式改为false DEBUG = False # 运行的host地址,正常就是写服务端的ip地址,不知道可以先写* A…

    2023年4月2日
    00
  • 数据库配置限)不用root用户操作数据库了(为数据库创建用户,并赋予权限)

    步骤 1.为路飞项目创建数据库 在mysql终端输入以下代码: create database luffy charset=utf8; 2.创建数据库用户 create user ‘username’@’host’ identified by ‘password’; 其中username为自定义的用户名;host为登录域名,host为’%’时表示为 任意IP…

    Python开发 2023年4月2日
    00
  • 文章的评论(跟评论与子评论的制作)

    文章的评论制作 先做跟评论,在做子评论 发表评论框的制作:前端渲染发表评论框: {# 评论功能开始#} {% if request.user.is_authenticated %} <div> <p><span class=”glyphicon glyphicon-comment”>发表评论:</span>&l…

    2023年4月2日
    00
  • flask蓝图与项目一般结构

    flask一般项目结构 初始化配置flask项目时,路由和视图是放在启动文件里的,这样不太方便我们后期的整理和查阅! 因此,我们需要将项目启动文件和路由视图分开处理! 在项目文件下创建一个apps的包,在包的初始化文件里定义一个函数,用来实现app相关的功能 init.py from flask import Flask import settings de…

    Python开发 2023年4月2日
    00
  • 操作系统启动流程和BIOS介绍

    1.BIOS介绍 我们刚刚买回来的电脑裸机是可以直接启动的,这是由于生产厂商在电脑出厂的时候就在电脑里编写了一个只可读的系统功能BIOS,该系统被写入了ROM(只读内存中) BIOS是一个过渡性的操作系统,当安装了window等其他操作系统时,该系统会被快速的代替 2.操作系统的启动流程 1.计算机通电2.BIOS开始运行,检测硬件:cpu、内存、硬盘等3.…

    2023年4月2日
    00
  • 小程序用户和登录页面展示

    用户页面wxml <!–pages/home/home.wxml–> <view class=”container”> <view class=”top-view”> <view class=”user”> <view class=”row”> <image class=”avatar” …

    Python开发 2023年4月2日
    00
合作推广
合作推广
分享本页
返回顶部