广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Django之视图层
  • 612
分享到

Django之视图层

视图Django 2023-01-30 23:01:29 612人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

  一、视图函数   一个视图函数,简称视图,是一个简单的python函数,接收WEB请求并返回web响应。响应可以是一张网页的html内容,一个重定向,一个404错误等。在函数中必须写一个request的参数,然后必须要有返回值,中间的

  一、视图函数

  一个视图函数,简称视图,是一个简单的python函数,接收WEB请求并返回web响应。响应可以是一张网页的html内容,一个重定向,一个404错误等。在函数中必须写一个request的参数,然后必须要有返回值,中间的逻辑随便,整个函数写在哪里也无所谓,只要Python目录下就行,但我们默认规定,视图函数一般都写在每个应用下面views.py文件里。

下面是一个返回当前时间的视图函数

from Django.shortcuts import render, HttpResponse, HttpResponseRedirect, redirect
import datetime

def current_datetime(request):
    now = datetime.datetime.now()
    html = "<html><body>It is now %s.</body></html>" % now
    return HttpResponse(html)
红色部分必须要有的
request为请求对象,包含了所有的请求信息
HTTPResponse,render,redirect 都是返回的方式而已
函数名是可以随便取的,只要和url相对应就行

  二、request请求对象

  request是DjanGo把请求报文中的请求行、请求头,请求体封装成一个对象,只要用request.属性就可以得到相应的请求值

  三、响应对象

  响应对象就相当于就web请求给的web回应,响应对象主要有三种形式:HTTPResponse(),render(),redirect()

  1,HTTPResponse()

from django.shortcuts import render,HttpResponse,redirect
def func(request):
    if request.method=='GET':
        return HttpResponse('是get请求方式')
    return HttpResponse('不是get请求方式')
HTTPResponse方式只需给字符串就行

  2,render()

from django.shortcuts import render,HttpResponse,redirect
def login(request):
    if request.method=='GET':
        return render(request,'login.html')
   return HttpResponse('Error')
后面跟两个参数,第一个必须写request,第二个写上一个模板,render()会做两个事,首先帮你找到相应的模板,读取内容,其次是解析模板中的模板语句,最后把解析后的字符串交给HTTPResponse发给浏览器

  3,redirect()重定向

from django.shortcuts import render,HttpResponse,redirect

def login(request):
    if request.method=='GET':
        return render(request,'login.html')
    else:
        if request.POST.get('user')=='alex' and request.POST.get('pwd')=='123':
            return  redirect('/shouye/')
        else:
            return HttpResponse('Error')
上面代码的功能是用户进行登录验证,成功后进入首页,但是我们用的redirect()并不会在登录成功后直接发一个首页的HTML文件给浏览器,而是给浏览器一个首页的地址,要求浏览器马上在给我发一个刚才我给你的首页地址请求,然后再把首页的HTML文件发给浏览器

中间有两次请求

301和302的区别

  301和302状态码都表示重定向,就是说浏览器在拿到服务器返回的这个状态码后会自动跳转到一个新的URL地址,这个地址可以从响应的Location首部中获取
  (用户看到的效果就是他输入的地址A瞬间变成了另一个地址B)——这是它们的共同点。

  他们的不同在于。301表示旧地址A的资源已经被永久地移除了(这个资源不可访问了),搜索引擎在抓取新内容的同时也将旧的网址交换为重定向之后的网址;

  302表示旧地址A的资源还在(仍然可以访问),这个重定向只是临时地从旧地址A跳转到地址B,搜索引擎会抓取新的内容而保存旧的网址。 SEO302好于301

 

2)重定向原因:
(1)网站调整(如改变网页目录结构);
(2)网页被移到一个新地址;
(3)网页扩展名改变(如应用需要把.PHP改成.Html或.shtml)。
        这种情况下,如果不做重定向,则用户收藏夹或搜索引擎数据库中旧地址只能让访问客户得到一个404页面错误信息,访问流量白白丧失;再者某些注册了多个域名的
    网站,也需要通过重定向让访问这些域名的用户自动跳转到主站点等。

关于301与302
View Code

 

--结束END--

本文标题: Django之视图层

本文链接: https://www.lsjlt.com/news/180643.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Django之视图层
      一、视图函数   一个视图函数,简称视图,是一个简单的python函数,接收web请求并返回web响应。响应可以是一张网页的HTML内容,一个重定向,一个404错误等。在函数中必须写一个request的参数,然后必须要有返回值,中间的...
    99+
    2023-01-30
    视图 Django
  • Django 视图层
    一.虚拟环境 PyCharm可以使用virtualenv中的功能来创建虚拟环境。PyCharm紧密集成了virtualenv,所以只需要在setting中配置即可创建虚拟环境。而且PyCharm捆绑了virtualenv,我们不需要单独安...
    99+
    2023-01-30
    视图 Django
  • Django视图层与模板层实例详解
    目录theme: channing-cyan网页伪静态视图层1.视图函数的返回值问题2.视图函数返回json格式数据3.form表单携带文件数据4.FBV与CBV5.CBV源码分析模...
    99+
    2022-11-11
  • Django之views视图函数
    views视图函数属于MTV中逻辑处理的部分视图函数包含着两个对象,HttpRequest对象和HttpResponse对象 HttpRequest对象在Django中会默认传到views函数中作为第一个参数 HttpRequest的属...
    99+
    2023-01-30
    视图 函数 Django
  • Django之路由层
      url配置就像Django所支撑网站的目录。它的本质是url与要被该url调用的视图函数之间的映射表;通过这个映射表可以告知Django,对于客户端发来的某个url该执行那些代码。   一、简单的路由配置 from django.u...
    99+
    2023-01-30
    路由 Django
  • Django之模板层
      在一个项目里面有一个专门放模板的文件夹Templates,有一个专门放视图的文件views,而且我们大多给浏览器响应的都应该是一个完整的页面,也就是读取的是一个HTML文件,然后再返回给浏览器。但我们在写HTML文件时,里面关于要从数...
    99+
    2023-01-30
    模板 Django
  • Django—视图
    索引         一、URLconf         二、视图         三、HttpReqeust对象           3.1 QueryDict对象           3.2 GET和POST属性         四、...
    99+
    2023-01-31
    视图 Django
  • python之django路由和视图案例教程
    django路由和视图 要了解django是如何运行的,首先要了解路由和视图两个概念,然后我们在项目中添加一些简单的路由和视图 路由和视图的概念 视图:一个视图函数(类),简称视图,...
    99+
    2022-11-12
  • Django 模型层之多表操作
    一.创建模型 实例: 作者表: 拥有字段:姓名(name),性别(sex),该表与书籍表之间为多对多的关系 作者详情表: 拥有字段:地址(addr),手机号(phone),该表与作者表之间为一对一的关系 出版社表: ...
    99+
    2023-01-30
    之多 模型 操作
  • Django之模型层(多表操作)
      一、创建模型   1,一对多关系   一本书只有一个出版社,一个出版社可以出版多本书,从而书与出版社之间就构成一对多关系,书是‘多’的一方,出版社是‘一’的一方,我们在建立模型的时候,把外键写在‘多’的一方,即我们要把外键写在book...
    99+
    2023-01-30
    模型 操作 Django
  • Ember.js的视图层分析
    这篇文章主要讲解了“Ember.js的视图层分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Ember.js的视图层分析”吧!Ember.js 有一套复杂...
    99+
    2022-10-19
  • django的类视图-11
    目录 1. 使用类视图 创建类视图 注册路由 类视图使用装饰器 在url中装饰 ...
    99+
    2023-01-30
    视图 django
  • Django视图怎么用
    这篇文章将为大家详细讲解有关Django视图怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一个视图函数或者类,简称视图(view),是一个简单的Python 函数(类),它接受Web请求并且返回We...
    99+
    2023-06-02
  • Django视图之ORM数据库查询操作API的实例
    查询表记录 查询相关API 操作:models.表名.objects.方法() <BR>all(): 查询所有结果 filter(**kwargs): 它包含了与所给筛选条件...
    99+
    2022-06-05
    视图 数据库查询 实例
  • Python Django通用视图和错误视图怎么使用
    本文小编为大家详细介绍“Python Django通用视图和错误视图怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python Django通用视图和错误视图怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路...
    99+
    2023-07-06
  • MINA框架的视图层和逻辑层实例分析
    本篇内容主要讲解“MINA框架的视图层和逻辑层实例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MINA框架的视图层和逻辑层实例分析”吧!1. 开篇导言    目标用户:...
    99+
    2023-06-26
  • Django框架中视图的用法
    视图层 一个视图函数,简称视图,是一个简单的 Python 函数,它接受 Web 请求并且返回 Web 响应。 响应可以是一个 HTML 页面、一个 404 错误页面、重定向页面、X...
    99+
    2022-11-11
  • Django模板语言与视图(view)
      常用语法     {{  }}和{% %}     变量相关的用{{}} , 逻辑相关的用{% %}       变量     在Django的模板语言中按此语法使用:{{ 变量名 }}。   当模版引擎遇到一个变量,它将计算这个变量...
    99+
    2023-01-30
    视图 模板 语言
  • 利用Django通用类视图(class
    最近在学习Django,官方文档介绍地十分详细。但是“大而全”就难免会有些不够速成,和我们这个浮躁的互联网时代格格不入,所以我就整理了这个文档。就像coolshell说的,一泡屎的时间就可以看完。 框架的好处就是,它已经为用户处理了绝大...
    99+
    2023-01-31
    视图 Django class
  • Django中有哪些视图类型
    这篇文章将为大家详细讲解有关Django中有哪些视图类型,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1、基于功能的视图基于函数的视图是使用python中的函数编写的,该函数以HttpReq...
    99+
    2023-06-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作