美文网首页Python
请求与响应(十)

请求与响应(十)

作者: 梦捷者 | 来源:发表于2019-03-01 21:19 被阅读95次

1、HttpRequest对象

1、1 视图函数接受到的request到底是个什么对象呢?

1、2 HttpRequest对象

    服务器接收到http协议的请求后,会根据报文创建HttpRequest对象视图函数的第一个参数是HttpRequest对象在django.http模块中定义了HttpRequest对象的API(把HttpRequest对象传给视图函数request参数)

2、GET和POST请求

2、1 form标签中的GET和POST

在HTML中,form表单的作用是收集标签中的内容,<form>...</form> 中间可以由访问者添加类似于文本,选择,或者一些控制模块等等.然后这些内容将会被送到服务端。

一个表单必须指定两样东西:

1. form的method参数用于设置表单的提交方式,默认使用GET.

2. action用于设置表单的提交url,如果不写或者保持空字符串,那么将使用当前的URL.

2、2 form表单使用get方式提交的例子

(1)url路由路径配置

(2)写好视图后,又在login_bank.html中渲染模板,并且尝试get方法提交

(3)小结

1.get提交的参数会在url中显示.(在地址栏中显示)

2.可以通过request.GET.get(‘键名’)的方法来获取提交的参数

2、3 form表单使用post方式提交的例子

(1)一般表单的执行流程(一般用post方法比较安全)

(2)post方法的演示

a、url的配置

b、视图函数及html代码

c、小结

1.post的提交方式不会在url中显示参数

2.可以通过request.POST.get(‘键值’)方式来获取提交的数据

2、4 一键多值的getlist方法

(1)request对象的属性GET、POST都是QueryDict类型的对象与python字典不同,QueryDict类型的对象用来处理同一个键带有多个值的情况

- 方法get():

根据键获取值,只能获取键的一个值

如果一个键同时拥有多个值,获取最后一值

- 方法getlist():

根据键获取值将键的值以列表返回

可以获取一个键的多个值

(2)示例

a、在模板中写上携带get参数的url.

b、视图中获取参数.


2、5 request中GET和POST对象的属性

(1)GET属性

- QueryDict类型的对象

- 包含get请求方式的所有参数

- 与url请求地址中的参数对应,位于?后面

- 参数的格式是键值对,如key1=value1

- 多个参数之间,使用&连接,如key1=value1&key2=value2

(2)POST属性

- QueryDict类型的对象

- 包含post请求方式的所有参数

- 与form表单中的控件对应

- 表单中控件要有name属性,则name属性的值为键,value属性的值为值,构成键值对提交

- 对于checkbox控件,name属性一样为一组,当控件被选中后会被提交,存在一键多值的情况.

2、6 GET和POST请求方式总结

(1) GET:GET如其名,是从服务器获取数据,不会更改服务器的状态和数据,在URL中携带参数发送给服务器。

(2) POST则是将一定量的数据发送给服务器,一般会更改服务器的数据。

(3.)POST方法的参数不能在URL当中看到,他是通过body参数传递给服务器的,所以相对GET方法直接能在URL当中看到传递的参数,显得更加安全一些.当然,也不能简单的判定POST方法比GET方法更安全,要使网站保持安全,需要做更多的安全处理.

3、文件上传

3、1 文件上传先前准备

(1)Django在处理文件上传的时候,文件数据被保存在了request.FILES,FILES中的每个键为<input type="file" name="" />中的name

(2)设置文件的存储路径

a、在项目根目录下static中创建upload文件夹(用于存储文件,可以随便命名)

b、图片上传后,会被保存到“upload/文件”

c、打开settings.py文件,增加UPLOAD_ROOT项

3、2 文件上传的各个页面

(1)文件上传视图函数

(2)文件上传form表单页面

注意:

a、FILES只有在请求的方法为POST 且提交的<form>带有enctype="multipart/form-data" 的情况下才会包含数据。否则,FILES 将为一个空的类似于字典的对象

b、multiple可以表示选择多个文件进行上传,不加这个参数代表每次只能传一个文件。

4、HttpResponse对象

4、1 HttpResponse对象的属性

4、2 HttpResponse的子类

(1)返回数据的响应函数有:

HttpResponse()  返回简单的字符串对象

render()  渲染模板

redirect()  重定向

JsonResponse()  返回json数据

(2)JsonResponse()的作用

- 帮助用户创建JSON编码的响应

- 参数data是字典对象

- JsonResponse的默认Content-Type为application/json

相关文章

  • 请求与响应(十)

    1、HttpRequest对象 1、1 视图函数接受到的request到底是个什么对象呢? 1、2HttpRequ...

  • django知识点五

    请求与响应 一、请求与响应 请求与响应过程 当用户请求一个页面时,Django 把请求的数据包装成一个 HttpR...

  • java笔记2-servlet-处理请求与响应

    目标 怎么处理请求与响应web容器到底是怎么实现请求与响应的HttpServletRequest处理请求http请...

  • Requests

    Requests库 目录一、Requests基础二、发送请求与接收响应(基本GET请求)三、发送请求与接收响应(基...

  • 请求与响应

    HttpServletResponse HttpServletResponse继承了ServletResponse...

  • 请求与响应

    Server + Client + HTTP 浏览器负责发起请求 服务器在 80 端口接收请求 服务器负责返回内容...

  • Web容器

    容器? 请求与响应大致流程:

  • HTTP入门(二):用Chrome开发者工具查看 HTTP 请求

    HTTP入门(二):用Chrome开发者工具查看 HTTP 请求与响应 本文简单总结HTTP的请求与响应。本文主要...

  • HTTP缓存

    http缓存:存储与请求关联的响应,并将存储的响应复用与后续请求 http缓存的好处: 响应速度快 减轻服务器的压...

  • 网络教程

    http协议包括 请求协议:请求行、请求头、请求体 响应协议:响应行、响应头、响应体 servlet

网友评论

    本文标题:请求与响应(十)

    本文链接:https://www.haomeiwen.com/subject/cbcruqtx.html