• 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=False

    JsonResponse

    传递 json 类型的 数据

    from django.http import JsonResponse

    def 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 视图的更多相关文章

  1. Django View视图

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

  2. django view 视图控制之数据返回的视图函数

    八.视图 view 概述:views.py定义的python函数,它接受Web请求并且返回Web响应. 有几个页面就有几个视图view user出入url地址,发送request--->urls ...

  3. Django view(视图)

    在Django MTV模式中,View视图负责业务逻辑部分,路由系统接收到HTTP请求,并将任务分配给相应的视图函数,由视图函数来负责响应这个请求.无论视图本身包含什么逻辑,都要返回响应. 在这里HT ...

  4. Django的View(视图)和路由系统

    一.Django的View(视图) 1.介绍 一个视图函数(类),简称视图,是一个简单的Python 函数(类),它接受Web请求并且返回Web响应. 响应可以是一张网页的HTML内容,一个重定向,一 ...

  5. Django中的View视图讲解

    Django中的View视图(view.py)是负责处理用户请求和返回响应的逻辑. 视图函数或视图简而言之就是一个python函数,它接受一个web请求并返回一个Web响应. 此响应可以是网页的HTM ...

  6. Django框架 之 view视图

    Django框架 之 view视图 浏览目录 概述 简单的视图 HttpRequest对象 CBV和FBV 给视图加装饰器 Request对象 Response对象 JsonResponse对象 Dj ...

  7. Django View(视图系统)

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

  8. 【Django】 视图层说明

    [Django视图层] 视图层的主要工作是衔接HTTP请求,Python程序和HTML模板,使他们能够有机互相合作从模型层lou到数据并且反馈.说到视图层的工作就有以下几个方面要说 ■ URL映射 对 ...

  9. Django基本视图

    Django基本视图 下面这三个类也许不能提供项目所需的所有的功能,这些应用于基于类的视图或Mixins情形下. 大多数Django的内建视图继承于其他基于类的视图或者各种mixins中,因为继承链是 ...

随机推荐

  1. go互斥锁Mutex

    go mutex是互斥锁,只有Lock和Unlock两个方法,在这两个方法之间的代码不能被多个goroutins同时调用到. 看代码: package main import ( "fmt& ...

  2. [转]VR原理讲解及开发入门

    本文转自:http://www.52vr.com/article-661-1.html 本文是作者obuil根据多年心得专门为想要入门的VR开发者所写,由52VR网站提供支持.   1. VR沉浸感和 ...

  3. yapi部署文档

    windows 下 yapi部署文档 安装nodejs 安装mongodb 安装yapi 介绍 随着 web 技术的发展,前后端分离成为越来越多互联网公司构建应用的方式.前后端分离的优势是一套 Api ...

  4. EF 查询所有字段

    1简单方式 var query=db.StudentScore.Where(r=> r.SubjectId==subjectId).Select(g=>g).ToList(); 2 var ...

  5. The Maze Makers(csu1566)

    1566: The Maze Makers Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 90  Solved: 33[Submit][Status][ ...

  6. SQL Server 创建和修改数据表

    一.CREATE语句(创建) 1.创建DataBase 1.CONTAINMENT SQL Server 2012 新功能 , 默认值是OFF .(太高级 书上也没有详细介绍). 2.ON ON用于两 ...

  7. Linux 中的命令链接操作符

    && 与 || 配合 eg: cat test.sh #!/bin/bash [ -e /etc/hosts ] && echo "ok" || e ...

  8. 自定义基于jquery竖向瀑布流插件

    公司新项目做了一个关于图片的板块,网上找了一些瀑布流插件都不是很适合自己,于是就自己造轮子写一个,并封装成插件github 于是就想分享一下,主要是为了更好的学习与记忆. 如果大家进来了,希望能给我g ...

  9. 通过webpack2从0开始配置自己的vue项目 1

    PS 阅读者需要node基础.webpack原理知识.vue基础 安装node 这个网上很多教程 打开终端 创建项目 npm init 全局安装: cnpm i webpack webpack-dev ...

  10. loj#2002. 「SDOI2017」序列计数(dp 矩阵乘法)

    题意 题目链接 Sol 质数的限制并没有什么卵用,直接容斥一下:答案 = 忽略质数总的方案 - 没有质数的方案 那么直接dp,设\(f[i][j]\)表示到第i个位置,当前和为j的方案数 \(f[i ...