django中的视图层

1.什么是视图层

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

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

2.1基本格式

from django.http import HttpResponse
def page_2003(request):
    html = '<h1>&#x7B2C;&#x4E00;&#x4E2A;&#x7F51;&#x9875;</h1>'
    return HttpResponse(html)
&#x6CE8;&#x610F;&#x9700;&#x8981;&#x5728;&#x4E3B;&#x8DEF;&#x7531;&#x6587;&#x4EF6;&#x4E2D;&#x5F15;&#x5165;&#x65B0;&#x521B;&#x5EFA;&#x7684;&#x89C6;&#x56FE;&#x51FD;&#x6570;

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

def test(request, num):
    html = '&#x8FD9;&#x662F;&#x6211;&#x7684;&#x7B2C;%s&#x4E2A;&#x7F51;&#x9875;' % num
return HttpResponse(html)
&#x6DFB;&#x52A0;&#x8F6C;&#x6362;&#x5668;&#x7684;&#x89C6;&#x56FE;&#x51FD;&#x6570;&#xFF0C;request&#x540E;&#x9762;&#x7684;&#x53C2;&#x6570;num&#x4E3A;path&#x8F6C;&#x6362;&#x5668;&#x4E2D;&#x7684;&#x81EA;&#x5B9A;&#x4E49;&#x540D;

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

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

2.4重定向的视图函数

from django.http import HttpResponse,HttpResponseRedirect
def test_request(request):--&#x6CE8;&#x610F;path&#x51FD;&#x6570;&#x91CC;&#x4E5F;&#x8981;&#x7ED1;&#x5B9A;test_request&#x8FD9;&#x4E2A;&#x8DEF;&#x5F84;
return HttpResponseRedirect('page/2003/')--&#x91CD;&#x5B9A;&#x5411;&#x5230;127.0.0.1:8000/page/2003&#x8FD9;&#x4E2A;&#x9875;&#x9762;&#x53BB;

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

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

2.6加载模板层的视图函数

&#x4F7F;&#x7528;render()&#x76F4;&#x63A5;&#x52A0;&#x8F7D;&#x5E76;&#x76F8;&#x5E94;&#x6A21;&#x677F;&#x8BED;&#x6CD5;&#xFF1A;
&#x200B;from django.shortcuts import render
&#x200B;def test_html(request):
&#x200B; return render(request, '&#x6A21;&#x677F;&#x6587;&#x4EF6;&#x540D;', &#x5B57;&#x5178;&#x6570;&#x636E;)
&#x6CE8;&#x610F;&#x89C6;&#x56FE;&#x5C42;&#x7684;&#x6240;&#x6709;&#x53D8;&#x91CF;&#x53EF;&#x4EE5;&#x7528;local&#xFF08;&#xFF09;&#x65B9;&#x6CD5;&#x5168;&#x90E8;&#x81EA;&#x52A8;&#x6574;&#x5408;&#x6210;&#x5B57;&#x5178;&#x4F20;&#x5230;render&#x7684;&#x6700;&#x540E;&#x4E00;&#x4E2A;&#x53C2;&#x6570;&#x91CC;

2.7返回JsonResponse对象的视图函数

json格式的数据的作用:

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

格式:

from django.http import JsonResponse
def ab_json(request):
    user_dict={'username':'json,&#x6211;&#x597D;&#x559C;&#x6B22;','password':'1243'}
return JsonResponse(user_dict,json_dumps_params={'ensure_ascii':False})
&#x5B57;&#x5178;&#x4F20;&#x5165;&#x65F6;&#x9700;&#x8981;&#x8BBE;&#x7F6E;json_dumps_params&#x683C;&#x5F0F;&#x5316;&#x5B57;&#x7B26;&#x4E32;&#xFF0C;&#x4E0D;&#x7136;&#x5B57;&#x5178;&#x91CC;&#x7684;&#x4E2D;&#x6587;&#x4F1A;&#x62A5;&#x9519;
    list = [111,22,33,44]
return JsonResponse(list,safe=False)
&#x5217;&#x8868;&#x4F20;&#x5165;&#x5E8F;&#x5217;&#x5316;&#x65F6;&#x9700;&#x8981;&#x8BBE;&#x7F6E;safe&#x4E3A;false &#xFF0C;&#x4E0D;&#x7136;&#x4F1A;&#x62A5;&#x9519;

2.8视图层的FBV和CBV格式

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

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

2.CBV
CBV&#x8DEF;&#x7531;
    pathr'^login/',views.MyLogin.as_view())
CBV&#x89C6;&#x56FE;&#x51FD;&#x6570;
from django.views import View
class MyLogin(View):
def get(self,request):
return render(request,'form.html')
def post(self,request):
return HttpResponse('post&#x65B9;&#x6CD5;')
"""
FBV&#x548C;CBV&#x5404;&#x6709;&#x5343;&#x79CB;
CBV&#x7279;&#x70B9;
  &#x80FD;&#x591F;&#x76F4;&#x63A5;&#x6839;&#x636E;&#x8BF7;&#x6C42;&#x65B9;&#x5F0F;&#x7684;&#x4E0D;&#x540C;&#x76F4;&#x63A5;&#x5339;&#x914D;&#x5230;&#x5BF9;&#x5E94;&#x7684;&#x65B9;&#x6CD5;&#x6267;&#x884C;

Original: https://www.cnblogs.com/suncolor/p/16663109.html
Author: 等日落
Title: django中的视图层

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/611330/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • NO.6 HTML+CSS 笔记

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    数据库 2023年6月14日
    081
  • 3_JavaScript

    JavaScript语言诞生主要是完成页面的数据验证, 因此它运行在客户端, 需要运行浏览器来解析执行JavaScript代码 JS是弱类型, Java是强类型 特点 交互性(它可…

    数据库 2023年6月11日
    097
  • 数据库的备份和恢复命令,使用视图,索引,事务

    备份库 直接在cmd窗口中直接输入,结束不需要输入; mysqldump -h端口号 -u用户名 -p密码 数据库名>备份地址 恢复库 在cmd窗口中进行 1、连接数据库 m…

    数据库 2023年6月16日
    0126
  • phpstrom以及webstrom等jetbrains全家桶激活方法

    因为最近重新安装了phpstrom,所以在网上找了许多激活方式,各种激活码和加公众号都试过了,没有一个能用的,直到我找到了以下的方式,亲测可用: 原理是我们通过代码搜索其他授权服务…

    数据库 2023年6月14日
    0158
  • HTTP状态码1XX深入理解

    前段时间看了《御赐小仵作》,里面有很多细节很有心。看了一些评论都是:终于在剧里能够看到真正在搞事业、发了工资第一时间还钱的正常人了。我印象比较深的是王府才能吃上的葡萄。觉得非常合理…

    数据库 2023年6月6日
    0104
  • Component name “Login“ should always be multi-word

    在运行vue项目的时候,看到此提示 这是因为没有关闭elint提示的错误,在vue.config.js下添加代码 lintOnSave: false Original: https…

    数据库 2023年6月11日
    084
  • 为什么说不变模式可以提高性能

    在Java中基础类型的包装类都是不可变的类,如Boolean、Byte、Character、Double、Float、Integer、Long、Short,另外还有String。这…

    数据库 2023年6月16日
    0107
  • 通过Python收集汇聚MySQL 表信息

    一.需求 统计收集各个实例上table的信息,主要是表的记录数及大小。 收集的范围是cmdb中所有的数据库实例。 二.公共基础文件说明 1.配置文件 配置文为db_servers_…

    数据库 2023年6月16日
    0121
  • Javascript中“==”与“===”的区别

    在Javascript中有”==”和”===”两种比较运行符,那么他们有什么区别呢? 一、对于string,number等基础类型,…

    数据库 2023年6月9日
    093
  • Javaer 面试必背系列!超高频八股之三色标记法

    可达性分析可以分成两个阶段 根节点枚举 从根节点开始遍历对象图 前文提到过,在可达性分析中,第一阶段 “根节点枚举” 是必须 STW 的,不然如果分析过程中…

    数据库 2023年6月6日
    0106
  • 内嵌h5调试神器-vConsole

    vConsole 一个轻量、可拓展、针对手机网页的前端开发者调试面板,可用于APP内嵌H5及其他调试H5的地方。 使用 方法一:cdn 方式引入 // 引入 // 初始化 var …

    数据库 2023年6月11日
    075
  • Hadoop生态二—Hadoop资源管理调度平台Yarn

    Yarn是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统平台,而mapreduce等运算程序则相当于运行于操作系统之上的应用程序Yarn是一个资源调…

    数据库 2023年6月6日
    0118
  • day03-拉取在线用户功能

    多用户即时通讯系统03 4.编码实现02 4.2功能实现-拉取在线用户 4.2.1思路分析 客户端想要知道在线用户列表,就要向服务器发送请求(Message),因为只有服务器端保持…

    数据库 2023年6月11日
    0169
  • MySQL 的 GRANT和REVOKE 命令

    MySQL 的 GRANT和REVOKE 命令 GRANT – 授权 将指定 &#x64CD;&#x4F5C;&#x5BF9;&#x8C…

    数据库 2023年5月24日
    0128
  • 避坑!SimpleDateFormat不光线程不安全,还有这个隐患

    众所周知,SimpleDateFormat是多线程不安全的 下面这段代码通过多线程使用同一个SimpleDateFormat对象的parse方法, 多次执行代码来测试,可以看到会出…

    数据库 2023年6月9日
    0104
  • .NET nhibernate 添加新的表运行报is not mapped的问题

    最后在修改一个.NET nhibernate的项目,按照原来的表添加了一个实体和一个hbm.xml的配置文件,写好所有业务代码以后运行报以下错误 NoAuthorizationSi…

    数据库 2023年6月9日
    0101
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球