Django view 视图
request.method 判断请求方式 8种
GET : 获取一个页面POST: 提交数据 PUT : 上传 HEAD: 不用上传就获取数据 DELETE: 删除 Request-URL 标识的 TRACE: 回显服务器收到的请求 OPTIONS: 测试服务器功能是否正常 CONNECT: 将链接改为管道方式 常用 GET POST 请求 request.POST form表单提交POST请求传递的数据 获得一个{} 取值方式 [] get() request.GET URL地址上的参数 获得一个{} 取值方式 [] get()
request 相关方法
request.method -->> 判断请求方式
request.POST -->> form表单提交POST请求传递的数据 获得一个{} 取值方式 [] get()
request.GET -->> URL地址上的参数 获得一个{} 取值方式 [] get()
request.path_info -->> 获取当前请求的路径 不包含参数
request.get_full_path() -->> 获取当前请求的路径 含参数
request.get_host() -->> 获取请求主机的 ip地址及端口号
request.body -->> 请求体 byte类型 request.POST就是从 body 中提取的
request.COOKIES -->> 获取所有的 cookies 字典形式
request.META -->> 获取所有的HTTP头部信息 是一个字典
request.session -->> 获取一个可读又可写 的 类似字典的 对象
request.is_secure() -->> 判断请求是否安全
request.is_ajax() -->> 判断是否是 ajax 请求
request.get_signet_cookies(key,salt='盐') -->> 获取假眼的 cookies 字典形式
request.FILES -->> 上传的文件
1. enctype = 'multipart/form-data'
2. method ='post' name {% csrf_token %}
3. 文件对象的方法 chunks()
Response
1. HttpResponse('字符串') ——》 字符串
2. render(request,'模板文件名',{k1:v1}) ——》完整的页面
3. redirect(‘要跳转的地址’) ——》 重定向 响应头: Location:url
1. ret = HttpResponse(‘’) ret['Location:'] = url
4. JosnResponse({}) Content-Type : application/json
1. 序列化非字典类型时: safe=FalseJsonResponse
传递 json 类型的 数据
from django.http import JsonResponsedef json_test(request):
data = {'name': 'alex', 'pwd': 'alexdsb'} return JsonResponse(data) # Content-Type: application/json
# return HttpResponse(json.dumps(data), content_type='application/json') # Content-Type: text/html; charset=utf-8
返回值
导入三件套
from django.shortcuts import render, redirect, HttpResponse, reverse redirect(reverse('/index/')) 重定向 + 反向解析 def login(request):
return HttpReponse('字符串') 返回一些字符串 def regist(request):
return render(request,'模板的文件名',{"data":"name"}) 返回一个完整的HTML页面 def index(request):
return redirect('要跳转的地址') 重定向 Location : 地址
4.CBV FBV
FBV (function based view ) 写url和函数的对应关系
from django.shortcuts import render, redirect, HttpResponse
def login(request):
err = ''
if request.method == 'POST':
name = request.POST.get('name')
pwd = request.POST.get('pwd')
if name == 'root' and 'pwd' == '123':
return HttpResponse('登录成功')
err = '账号或密码错误'
return render(request,'login.html',{'err':err})CBV (class based view) 写url和类的对应关系
from django.views import View
import time
class Index(View):# 重写 父类的 dispatch 方法 计算执行时间
def dispatch(self, request, *args, **kwargs):
# 操作
# start = time.time()
ret = super().dispatch(request, *args, **kwargs)
# end = time.time()
# print('时间:{}'.format(end - start))
# 操作
return ret # GET 请求
def get(self, request):
return render(request,'index.html')
# POST 请求
def post(self, request): data = request.POST.get('data')
print(data)
return self.get(request)
CBV 的流程
CBV的流程:1. AddPub.as_view()执行 ——》 view函数
2. 请求到来的时候执行view函数:
1. self = AddPub(*)
2. self.request = request
3. 执行self.dispatch(request,) ——》如果AddPub定义了dispatch方法,执行自己的,没有执行父类的
1. 判断请求方式 http_method_names
2. 允许的话:
1. 通过反射获取对应请求方式(get/post)的方法 ——》handler
3. 不允许:
1. http_method_not_allowed ——》 handler
4. 执行handler ——》 拿到HttpResponse对象
Django view 视图的更多相关文章
- Django View视图
视图view 一个视图函数(类),简称视图,是一个简单的Python 函数(类),它接受Web请求并且返回Web响应.响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者 ...
- django view 视图控制之数据返回的视图函数
八.视图 view 概述:views.py定义的python函数,它接受Web请求并且返回Web响应. 有几个页面就有几个视图view user出入url地址,发送request--->urls ...
- Django view(视图)
在Django MTV模式中,View视图负责业务逻辑部分,路由系统接收到HTTP请求,并将任务分配给相应的视图函数,由视图函数来负责响应这个请求.无论视图本身包含什么逻辑,都要返回响应. 在这里HT ...
- Django的View(视图)和路由系统
一.Django的View(视图) 1.介绍 一个视图函数(类),简称视图,是一个简单的Python 函数(类),它接受Web请求并且返回Web响应. 响应可以是一张网页的HTML内容,一个重定向,一 ...
- Django中的View视图讲解
Django中的View视图(view.py)是负责处理用户请求和返回响应的逻辑. 视图函数或视图简而言之就是一个python函数,它接受一个web请求并返回一个Web响应. 此响应可以是网页的HTM ...
- Django框架 之 view视图
Django框架 之 view视图 浏览目录 概述 简单的视图 HttpRequest对象 CBV和FBV 给视图加装饰器 Request对象 Response对象 JsonResponse对象 Dj ...
- Django View(视图系统)
Django View 官方文档 一个视图函数(类),简称视图,是一个简单的 Python 函数(类),它接受Web请求并且返回Web响应.响应可以是一张网页的HTML内容,一个重定向,一个404错误 ...
- 【Django】 视图层说明
[Django视图层] 视图层的主要工作是衔接HTTP请求,Python程序和HTML模板,使他们能够有机互相合作从模型层lou到数据并且反馈.说到视图层的工作就有以下几个方面要说 ■ URL映射 对 ...
- Django基本视图
Django基本视图 下面这三个类也许不能提供项目所需的所有的功能,这些应用于基于类的视图或Mixins情形下. 大多数Django的内建视图继承于其他基于类的视图或者各种mixins中,因为继承链是 ...
随机推荐
- /proc文件系统 - 汇总
0. /proc目录简介 Linux 内核提供了一种通过 /proc 文件系统,在运行时访问内核内部数据结构.改变内核设置的机制. proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间 ...
- .net实现支付宝在线支付
流程参考<实物商品交易服务集成技术文档2.0.pdf>网关地址http://paytest.rupeng.cn/AliPay/PayGate.ashx 网关参数说明:partner:商户编 ...
- Java 基础系列合集
Java基础知识你知道多少? Java特性 Java三大特性:封装,继承,多态 Java 抽象类与接口 Java 浅拷贝和深拷贝 Java static和final Java 内部类.静态内部类.匿名 ...
- Python简单的网络编程
OSI 模型介绍 应用层 -- 对接受的数据进行解释.加密与解密.压缩与解压缩 会话层 -- 通过传输层(端口号: 传输端口和接受端口) 建立数据传输的通路 传输层 -- 定义了一些传输数据的协议和端 ...
- Python 类的特殊成员介绍
类的成员有两种形式 公有成员,在任何地方都能访问 私有成员,只有在类的内部才能方法,私有成员命名时,前两个字符是下划线. class Foo: def __init__(self, name, age ...
- SSM环境搭建
流程 1,maven 依赖 2,spring 配置文件 3,mybatis 配置文件 4,springMVC 配置文件 5,web.xml pom依赖 1,定义版本 <properties> ...
- 《InsideC#》笔记(十) 异常处理
CLR的作用之一是处理异常.通过自动的内存和资源管理可以避免一部分异常,然后借助强类型系统还可以捕获运行时异常. 一 异常基础 异常处理系统保护四个关键字:try,catch,throw,finall ...
- 开始记录 Windows Phone 生涯
已经快接近三年没有更新博客了,最近打算把博客这块从新建设起来. 由于工作原因,现在已经很久没有接触过Android了.目前工作是全力 Windows Phone,并且也已经工作一年半了,以后会陆续把之 ...
- Kotlin入门(14)继承的那些事儿
上一篇文章介绍了类对成员的声明方式与使用过程,从而初步了解了类的成员及其运用.不过早在<Kotlin入门(12)类的概貌与构造>中,提到MainActivity继承自AppCompatAc ...
- 对word2vec的理解及资料整理
对word2vec的理解及资料整理 无他,在网上看到好多对word2vec的介绍,当然也有写的比较认真的,但是自己学习过程中还是看了好多才明白,这里按照自己整理梳理一下资料,形成提纲以便学习. 介绍较 ...