Django框架,Views(视图函数),也就是逻辑处理函数里的各种方法与属性

Views(视图函数)逻辑处理,最终是围绕着两个对象实现的

http请求中产生两个核心对象:

http请求:HttpRequest对象

http响应:HttpResponse对象

所在位置:django.http

之前我们用到的参数request就是HttpRequest    

HttpRequest对象

逻辑处理函数的第一个形式参数,接收到的就是HttpRequest对象,这个对象里封装着用户的各种请求信息,通过HttpRequest对象的方法或者属性,可以获取到响应的请求信息

HttpRequest请求对象里的方法和属性如下:

path属性,获取请求页面的全路径,不包括域名

from django.shortcuts import render,HttpResponse

def special(request):
print(request.path)
return render(request,'index.html') #向用户显示一个html页面 #返回:
#/bug/articles/5555

method属性,获取请求中使用的HTTP方式的字符串表示。全大写表示

from django.shortcuts import render,HttpResponse

def special(request):
print(request.method)
return render(request,'index.html') #向用户显示一个html页面 #返回:
#GET

GET属性,获取HTTP GET方式请求传参,的参数(字典类型)
如:http://127.0.0.1:8000/bug/articles/?mch=123 & mim=456

from django.shortcuts import render,HttpResponse

def special(request):
print(request.GET)
return render(request,'index.html') #向用户显示一个html页面 #返回:
#<QueryDict: {' mim': ['456'], 'mch': ['123 ']}>

更多

# POST:       包含所有HTTP POST参数的类字典对象
#
# 服务器收到空的POST请求的情况也是可能发生的,也就是说,表单form通过
# HTTP POST方法提交请求,但是表单中可能没有数据,因此不能使用
# if req.POST来判断是否使用了HTTP POST 方法;应该使用 if req.method=="POST"
#
#
#
# COOKIES: 包含所有cookies的标准Python字典对象;keys和values都是字符串。
#
# FILES: 包含所有上传文件的类字典对象;FILES中的每一个Key都是<input type="file" name="" />标签中name属性的值,FILES中的每一个value同时也是一个标准的python字典对象,包含下面三个Keys:
#
# filename: 上传文件名,用字符串表示
# content_type: 上传文件的Content Type
# content: 上传文件的原始内容
#
#
# user: 是一个django.contrib.auth.models.User对象,代表当前登陆的用户。如果访问用户当前
# 没有登陆,user将被初始化为django.contrib.auth.models.AnonymousUser的实例。你
# 可以通过user的is_authenticated()方法来辨别用户是否登陆:
# if req.user.is_authenticated();只有激活Django中的AuthenticationMiddleware
# 时该属性才可用
#
# session: 唯一可读写的属性,代表当前会话的字典对象;自己有激活Django中的session支持时该属性才可用。

get_full_path()方法,获取HTTP GET方式请求传参,的URL地址
比如:http://127.0.0.1:8000/index33/?name=123 
get_full_path()得到的结果就是/index33/?name=123

HttpResponse响应对象方法和属性如下:

对于HttpRequest请求对象来说,是由django自动创建的,但是,HttpResponse响应对象就必须我们自己创建。每个view请求处理方法必须返回一个HttpResponse响应对象。

HttpResponse类在django.http.HttpResponse

在HttpResponse对象上扩展的常用方法:

render(请求对象,'html文件和路径')方法,将指定页面渲染后返回给浏览器,

from django.shortcuts import render

def special(request):
return render(request,'index.html') #向用户显示一个html页面

render_to_response('html文件和路径')方法,将指定页面渲染后返回给浏览器,

from django.shortcuts import render,render_to_response
def special(request):
return render_to_response('index.html') #向用户显示一个html页面

redirect('跳转路径和名称')方法,页面跳转

from django.shortcuts import render,render_to_response,redirect
def special(request):
return redirect('http://www.jxiou.com/') #跳转页面

locals(变量名称)可以直接将逻辑处理函数中的所有变量传给模板    

from django.shortcuts import render
def special(request): a1 = 123
a2 = 456
a3 = 789
return render(request,'index.html',locals()) #跳转页面

html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>主页</h1>
<p>{{ a1 }}</p>
<p>{{ a2 }}</p>
<p>{{ a3 }}</p>
</body>
</html>

三 Django框架,Views(视图函数),也就是逻辑处理函数里的各种方法与属性的更多相关文章

  1. 第三百零五节,Django框架,Views(视图函数),也就是逻辑处理函数里的各种方法与属性

    Django框架,Views(视图函数),也就是逻辑处理函数里的各种方法与属性 Views(视图函数)逻辑处理,最终是围绕着两个对象实现的 http请求中产生两个核心对象: http请求:HttpRe ...

  2. Django框架03 /视图相关

    Django框架03 /视图相关 目录 Django框架03 /视图相关 1. 请求相关 2.响应相关 3.FBV和CBV 视图(视图函数和视图类) 3.1 类视图 CBV 3.2 视图函数 FBV ...

  3. Django 框架之视图函数(Views)

    http请求中产生的两个核心对象: http请求: HttpRequest对象 http响应: HttpResponse对象 所在位置: django.http HttpRequest 对象的属性和方 ...

  4. Django之views视图函数

    views视图函数属于MTV中逻辑处理的部分视图函数包含着两个对象,HttpRequest对象和HttpResponse对象 一.HttpRequest对象 HttpRequest对象在Django中 ...

  5. Django框架1——视图和URL配置

    三个命令 1.创建一个django项目 在cmd中:django-admin.py startproject project_name D:\python\django_site>django- ...

  6. Django框架简介-视图系统

    2.3 视图系统 一个视图函数(类),简称视图,是一个简单的Python 函数(类),它接受Web请求并且返回Web响应. 响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档 ...

  7. Django的views视图系统

    老师的博客:http://www.cnblogs.com/liwenzhou/articles/8305104.html 以看老师的博客为主 一个视图函数(类),简称视图,是一个简单的Python 函 ...

  8. django框架基础-视图系统-长期维护

    ##################   什么是视图?     ####################### 视图: 1,一个视图函数(类),简称视图,是一个简单的Python 函数(类),它接受W ...

  9. django框架-DRF视图中的request和response

    1.Request 相对于django框架,DRF工程的request类则是继承自HttpRequest类,Rest framework提供了parser解释器,用来解释请求中的content_typ ...

随机推荐

  1. 【elasticsearch】安装合集

    [elasticsearch](1)centos7 使用yum安装elasticsearch 2.X [elasticsearch](2)centos7 超简单安装elasticsearch 的监控. ...

  2. CLR内存回收总结,代龄机制

    关键字:对象可达图,代龄机制,终止化对象. 代龄机制: 0代满了之后,GC开始回收,剩下的对象升级为1代.(只有不可达的对象才会被回收.) 0代再回收几次之后,1代的对象慢慢增多然后达到阈值,GC同时 ...

  3. saltstack内置state模块file之append

    添加文件文本在文件尾部 salt.states.file.append(name, text=None, makedirs=False, source=None, source_hash=None, ...

  4. Android数据适配器(Adapter)优化:使用高效的ViewHolder

    原文链接:http://stackvoid.com/using-adapter-in-efficiency-way/ 在使用Listview或GridView的时候,往往须要自己定义数据适配器.一般都 ...

  5. 网页上10秒倒计时,完了后就自动跳转到另一个网页上html代码

    用html代码的话就这样: <meta http-equiv="Refresh" content="10;URL=http://www.baidu.com" ...

  6. ubuntu study

    1.statement a.Fist af all,I think myself be to study miv in instruction. b.again,I think myself be t ...

  7. python 文字识别 之 pytesseract

    pytesseract资源 链接:https://pan.baidu.com/s/1eTsqhsY 密码:j0yo 安装时前面一直next就可以了,直到这一步,勾选Math和Chinese,支持计算和 ...

  8. POJ 1860

    须要推断是否有正权环存在,Bellman-Ford算法就能够辣~ AC代码: #include <iostream> #include <cstdio> #include &l ...

  9. leetCode 57.Insert Interval (插入区间) 解题思路和方法

    Insert Interval  Given a set of non-overlapping intervals, insert a new interval into the intervals ...

  10. SpringMVC拦截器实现登录认证

    项目结构如图: 需要的jar:有springMVC配置需要的jar和jstl需要的jar SpringMVC包的作用说明: aopalliance.jar:这个包是AOP联盟的API包,里面包含了针对 ...