处理HTTP请求
处理HTTP请求 当客户端浏览器通过URL访问web应用时,首先要做的就是获取用户提交的信息,也就是从HTTP请求数据中获得的信息。HTTP请求数据分为HTTP请求头和Body HTTP请求头包含了一些HTTP请求字段和HTTP GET字段 Body中可以包含任何类型的数据,包含HTTP GET字段、HTTP POST字段,下面只介绍HTTP GET字段,后面再说HTTP POST字段 如果要获得某个HTTP请求字段的值,需要使用META属性,改属性与GET属性一样,也是一个字典类型,里面包含了所有HTTP请求头字典, HTTP请求头字段并不一定在任何情况下都有值,所以在获取HTTP请求头字段值时要注意这一点 本例演示了利用路由函数的request参数获取HTTP请求头字段信息以及HTTP GET请求字段值, 1、首先建立工程,建立工程请参照:https://www.cnblogs.com/effortsing/p/10394511.html 2、在工程的Firstdjango目录中建立一个request.py脚本文件,然后在request.py文件中添加如下内容: from django.http import HttpResponse
def myRequest(request):
response = 'scheme' + request.scheme + '<br>'
response += 'path:'+ request.path + '<br>'
response += 'method:' + request.method + '<br>'
# 下面代码获取HTTP请求头信息
response += 'HTTP_ACCEPT:' + request.META['HTTP_ACCEPT'] + '<br>'
response += 'HTTP_USER_AGENT:' + request.META['HTTP_USER_AGENT'] + '<br>'
response += 'REMOTE_ADDR:' + request.META['REMOTE_ADDR'] + '<br>'
response += 'QUERY_STRING:' + request.META['QUERY_STRING'] + '<br>'
#获取name字段的值
response += 'name:' + str(request.GET['name'])+ '<br>'
#获取age字段值
response += 'age:' + str(request.GET.get('age'))+ '<br>'
return HttpResponse(response) 3、然后在Firstdjango目录中找到urls.py脚本文件,用下面的代码代替urls.py脚本里面的内容: from django.conf.urls import url
from . import request
urlpatterns=[
url(r'^request$',request.myRequest),
] 4、启动django工程 如果已经启动了django工程,就不需要再次启动,django会自动加载修改的内容 浏览器访问 http://127.0.0.1:8000/request?name=Bill schemehttp
path:/request
method:GET
HTTP_ACCEPT:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
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
REMOTE_ADDR:127.0.0.1
QUERY_STRING:name=Bill
name:Bill
age:None 由于META属性和GET属性都是字典类型,所以如果使用中括号形式([...])获取key对应的值,当这个值不存在时,会抛出异常。可以使用try...catch语句捕捉异常, 也可以使用get(...)方法获取key的值。如果key不存在,get(...)方法返回None 5、上面建立request.py脚本文件创建位置如下图所示:

处理HTTP请求的更多相关文章
- Angular2入门系列教程7-HTTP(一)-使用Angular2自带的http进行网络请求
上一篇:Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数 感觉这篇不是很好写,因为涉及到网络请求,如果采用真实的网络请求,这个例子大家拿到手估计还要自己写一个web ...
- Android请求网络共通类——Hi_博客 Android App 开发笔记
今天 ,来分享一下 ,一个博客App的开发过程,以前也没开发过这种类型App 的经验,求大神们轻点喷. 首先我们要创建一个Andriod 项目 因为要从网络请求数据所以我们先来一个请求网络的共通类. ...
- 重温Http协议--请求报文和响应报文
http协议是位于应用层的协议,我们在日常浏览网页比如在导航网站请求百度首页的时候,会先通过http协议把请求做一个类似于编码的工作,发送给百度的服务器,然后在百度服务器响应请求时把相应的内容再通过h ...
- Taurus.MVC 2.2 开源发布:WebAPI 功能增强(请求跨域及Json转换)
背景: 1:有用户反馈了关于跨域请求的问题. 2:有用户反馈了参数获取的问题. 3:JsonHelper的增强. 在综合上面的条件下,有了2.2版本的更新,也因此写了此文. 开源地址: https:/ ...
- nodejs之get/post请求的几种方式
最近一段时间在学习前端向服务器发送数据和请求数据,下面总结了一下向服务器发送请求用get和post的几种不同请求方式: 1.用form表单的方法:(1)get方法 前端代码: <form act ...
- ajax异步请求
做前端开发的朋友对于ajax异步更新一定印象深刻,作为刚入坑的小白,今天就和大家一起聊聊关于ajax异步请求的那点事.既然是ajax就少不了jQuery的知识,推荐大家访问www.w3school.c ...
- C# MVC 5 - 生命周期(应用程序生命周期&请求生命周期)
本文是根据网上的文章总结的. 1.介绍 本文讨论ASP.Net MVC框架MVC的请求生命周期. MVC有两个生命周期,一为应用程序生命周期,二为请求生命周期. 2.应用程序生命周期 应用程序生命周期 ...
- nodejs进阶(5)—接收请求参数
1. get请求参数接收 我们简单举一个需要接收参数的例子 如果有个查找功能,查找关键词需要从url里接收,http://localhost:8000/search?keyword=地球.通过前面的进 ...
- 无法向会话状态服务器发出会话状态请求。请确保 ASP.NET State Service (ASP.NET 状态服务)已启动,并且客户端端口与服务器端口相同。如果服务器位于远程计算机上,请检查。。。
异常处理汇总-服 务 器 http://www.cnblogs.com/dunitian/p/4522983.html 无法向会话状态服务器发出会话状态请求.请确保 ASP.NET State Ser ...
- [转]利用URLConnection来发送POST和GET请求
URL的openConnection()方法将返回一个URLConnection对象,该对象表示应用程序和 URL 之间的通信链接.程序可以通过URLConnection实例向该URL发送请求.读取U ...
随机推荐
- LoadRunner生成测试报告
loadrunner笔记(三):设置.运行场景和生成测试报告 //上一篇的代码有点问题,问题出在 web_reg_find()函数中,这个函数简单的说是搜索下一步操作的请求对象(html)页面中 ...
- python3 random
一.random 1.生成伪随机数 2.伪随机数是可预测的,严格意义上不具有随机性质,通常用数学公式的方法(比如统计分布,平方取中等)获得 3.正如数列需要有首项,产生伪随机数需要一个初值用来计算整个 ...
- C++ 中对vector<T*> 数组的查找和排序
/* 2015-06-06 本文主要叙述对于vector<T*> (指针数组)如何进行find 操作下面的代码实现了Find,FindRange 模板函数, 解释了为什么std::find ...
- POJ-3186-Treats for the Cows(记忆化搜索)
链接: https://vjudge.net/problem/POJ-3186 题意: FJ has purchased N (1 <= N <= 2000) yummy treats f ...
- 11、组件注册-使用FactoryBean注册组件
11.组件注册-使用FactoryBean注册组件 package org.springframework.beans.factory; import org.springframework.lang ...
- P5312 [Ynoi2011]D2T1
思路:01trie 按位维护 提交:5边 错因:爆int + 少处理询问时的右端点 题解: 见代码(已经不想说什么了) 代码 //I have my own flg; #include<bits ...
- 数据库读写分离、分表分库——用Mycat
转: https://www.cnblogs.com/joylee/p/7513038.html 系统开发中,数据库是非常重要的一个点.除了程序的本身的优化,如:SQL语句优化.代码优化,数据 ...
- HTML5 本地数据库(SQLite) 示例
http://supercharles888.blog.51cto.com/609344/856071 http://www.sqlite.org/download.html
- controller层直接通过server类调用mapper的通用方法
自己写的方法没有,但是逆向生成的server类会有继承maybatis-plus的框架 与下图的配置有关
- 提交项目到Github
create a new repository on the command line git init git add README.md git commit -m "first com ...