1. 处理HTTP请求
  2.  
  3. 当客户端浏览器通过URL访问web应用时,首先要做的就是获取用户提交的信息,也就是从HTTP请求数据中获得的信息。HTTP请求数据分为HTTP请求头和Body
  4.  
  5. HTTP请求头包含了一些HTTP请求字段和HTTP GET字段
  6.  
  7. Body中可以包含任何类型的数据,包含HTTP GET字段、HTTP POST字段,下面只介绍HTTP GET字段,后面再说HTTP POST字段
  8.  
  9. 如果要获得某个HTTP请求字段的值,需要使用META属性,改属性与GET属性一样,也是一个字典类型,里面包含了所有HTTP请求头字典,
  10.  
  11. HTTP请求头字段并不一定在任何情况下都有值,所以在获取HTTP请求头字段值时要注意这一点
  12.  
  13. 本例演示了利用路由函数的request参数获取HTTP请求头字段信息以及HTTP GET请求字段值,
  14.  
  15. 1、首先建立工程,建立工程请参照:https://www.cnblogs.com/effortsing/p/10394511.html
  16.  
  17. 2、在工程的Firstdjango目录中建立一个request.py脚本文件,然后在request.py文件中添加如下内容:
  18.  
  19. from django.http import HttpResponse
  20. def myRequest(request):
  21. response = 'scheme' + request.scheme + '<br>'
  22. response += 'path:'+ request.path + '<br>'
  23. response += 'method:' + request.method + '<br>'
  24. # 下面代码获取HTTP请求头信息
  25. response += 'HTTP_ACCEPT:' + request.META['HTTP_ACCEPT'] + '<br>'
  26. response += 'HTTP_USER_AGENT:' + request.META['HTTP_USER_AGENT'] + '<br>'
  27. response += 'REMOTE_ADDR:' + request.META['REMOTE_ADDR'] + '<br>'
  28. response += 'QUERY_STRING:' + request.META['QUERY_STRING'] + '<br>'
  29. #获取name字段的值
  30. response += 'name:' + str(request.GET['name'])+ '<br>'
  31. #获取age字段值
  32. response += 'age:' + str(request.GET.get('age'))+ '<br>'
  33. return HttpResponse(response)
  34.  
  35. 3、然后在Firstdjango目录中找到urls.py脚本文件,用下面的代码代替urls.py脚本里面的内容:
  36.  
  37. from django.conf.urls import url
  38. from . import request
  39. urlpatterns=[
  40. url(r'^request$',request.myRequest),
  41. ]
  42.  
  43. 4、启动django工程
  44.  
  45. 如果已经启动了django工程,就不需要再次启动,django会自动加载修改的内容
  46.  
  47. 浏览器访问
  48.  
  49. http://127.0.0.1:8000/request?name=Bill
  50.  
  51. schemehttp
  52. path:/request
  53. method:GET
  54. HTTP_ACCEPT:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
  55. HTTP_USER_AGENT:Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.81 Safari/537.36
  56. REMOTE_ADDR:127.0.0.1
  57. QUERY_STRING:name=Bill
  58. name:Bill
  59. age:None
  60.  
  61. 由于META属性和GET属性都是字典类型,所以如果使用中括号形式([...])获取key对应的值,当这个值不存在时,会抛出异常。可以使用try...catch语句捕捉异常,
  62.  
  63. 也可以使用get(...)方法获取key的值。如果key不存在,get(...)方法返回None
  64.  
  65. 5、上面建立request.py脚本文件创建位置如下图所示:

  1.  

处理HTTP请求的更多相关文章

  1. Angular2入门系列教程7-HTTP(一)-使用Angular2自带的http进行网络请求

    上一篇:Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数 感觉这篇不是很好写,因为涉及到网络请求,如果采用真实的网络请求,这个例子大家拿到手估计还要自己写一个web ...

  2. Android请求网络共通类——Hi_博客 Android App 开发笔记

    今天 ,来分享一下 ,一个博客App的开发过程,以前也没开发过这种类型App 的经验,求大神们轻点喷. 首先我们要创建一个Andriod 项目 因为要从网络请求数据所以我们先来一个请求网络的共通类. ...

  3. 重温Http协议--请求报文和响应报文

    http协议是位于应用层的协议,我们在日常浏览网页比如在导航网站请求百度首页的时候,会先通过http协议把请求做一个类似于编码的工作,发送给百度的服务器,然后在百度服务器响应请求时把相应的内容再通过h ...

  4. Taurus.MVC 2.2 开源发布:WebAPI 功能增强(请求跨域及Json转换)

    背景: 1:有用户反馈了关于跨域请求的问题. 2:有用户反馈了参数获取的问题. 3:JsonHelper的增强. 在综合上面的条件下,有了2.2版本的更新,也因此写了此文. 开源地址: https:/ ...

  5. nodejs之get/post请求的几种方式

    最近一段时间在学习前端向服务器发送数据和请求数据,下面总结了一下向服务器发送请求用get和post的几种不同请求方式: 1.用form表单的方法:(1)get方法 前端代码: <form act ...

  6. ajax异步请求

    做前端开发的朋友对于ajax异步更新一定印象深刻,作为刚入坑的小白,今天就和大家一起聊聊关于ajax异步请求的那点事.既然是ajax就少不了jQuery的知识,推荐大家访问www.w3school.c ...

  7. C# MVC 5 - 生命周期(应用程序生命周期&请求生命周期)

    本文是根据网上的文章总结的. 1.介绍 本文讨论ASP.Net MVC框架MVC的请求生命周期. MVC有两个生命周期,一为应用程序生命周期,二为请求生命周期. 2.应用程序生命周期 应用程序生命周期 ...

  8. nodejs进阶(5)—接收请求参数

    1. get请求参数接收 我们简单举一个需要接收参数的例子 如果有个查找功能,查找关键词需要从url里接收,http://localhost:8000/search?keyword=地球.通过前面的进 ...

  9. 无法向会话状态服务器发出会话状态请求。请确保 ASP.NET State Service (ASP.NET 状态服务)已启动,并且客户端端口与服务器端口相同。如果服务器位于远程计算机上,请检查。。。

    异常处理汇总-服 务 器 http://www.cnblogs.com/dunitian/p/4522983.html 无法向会话状态服务器发出会话状态请求.请确保 ASP.NET State Ser ...

  10. [转]利用URLConnection来发送POST和GET请求

    URL的openConnection()方法将返回一个URLConnection对象,该对象表示应用程序和 URL 之间的通信链接.程序可以通过URLConnection实例向该URL发送请求.读取U ...

随机推荐

  1. 用js刷剑指offer(二维数组中的查找)

    题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数 ...

  2. cookies, session, token

    Cookie 是由客户端(通常是浏览器)保存的小型文本信息,其内容是一系列的键值对,是由 HTTP 服务器设置并保存在浏览器上的信息. 在post请求的瞬间,cookie会被浏览器自动添加到请求头中. ...

  3. Python3+Appium学习笔记09-元素定位android_uiautomator

    appium是使用了uiautomator的框架的,所以uiautomator所带的定位方式.appium也是支持的 需要使用appium中find_element_by_android_uiauto ...

  4. #Python语言程序设计Demo - 七段数码管绘制

    Python设计七段数码管绘制 单个数码管效果: 设计总数码管效果: Pyhton 编程: #七段数码管绘制 import turtle as t import time as T def drawG ...

  5. Controllers返回View的一个完整流程

    详细说明一个MVC框架下,返回一个view的原理.如下图: 上图粗略的说明了一个返回View的流程,细节如下: 1.定义Model类: 2.定义接口添加接口约束为class: 3.定义接口实现类,即对 ...

  6. 《流畅的Python》 A Pythonic Object--第9章

    Python的数据模型data model, 用户可以创建自定义类型,并且运行起来像内建类型一样自然. 即不是靠继承,而是duck typing. 支持用内建函数来创建可选的对象表现形式.例如repr ...

  7. redis事务机制

    目录 一.事务的实现 1.multi——开启事务 2.命令入队列 3.exec——执行事务 4.DISCARD——放弃执行 5.错误处理 二.watch命令 redis官方文档:Redis trans ...

  8. [唐胡璐]Selenium技巧 - 定制元素属性检查,并写到ReportNG中

    QTP 和Selenium 都会有这种要检查某一个控件元素属性的情况,比如去检查一个Button的显示文字是什么? 为了更方便的书写程序,并优美的显示到HTML测试报告中,做了以下几个小小的封装,只是 ...

  9. 打包完的rcp产品svn不储存密码问题

    原因是缺少org.eclipse.core.runtime.compatibility.auth 这个依赖,需要添加到依赖中去 因为使用SVNKit的时候会去调eclipse这个api 详情见: ht ...

  10. harbor1.9仓库同步迁移

    harbor 1.9 实战的仓库迁移,过程实际上就是从A push 到B.16个tag 不到100G,挺快的 1分钟多. 假设我们从A迁移到B. 1.先在A上面建立一个目标仓库.