python web py入门-4-请求处理(上)

2017年09月05日 23:07:24 Anthony_tester 阅读数:2907 标签: webpy入门请求处理 更多

个人分类: Python web.py开发入门
 
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011541946/article/details/77858538

这篇我们来介绍一下请求处理过程。其实,在前面python中requests做接口自动化的系列讲过请求和响应。服务器需要对客户端发送的请求,进行解析和处理。我们在前面文章介绍的URL映射,每次输入新的URL都是一次发送请求的过程。在cmd里可以看到这些请求的记录。

1. 用客户端合肥服务器的图形表示如下

文字解释下,一开始浏览器给服务器发送一个请求,请求数据主要由请求行,head,body组成。如果是post请求,requset line里面只有地址没有参数,参数放在了body里面。如果是get请求,request line里面包括URL和接口参数拼接在后面。body就是空。同样响应内容也有响应行,头部,body三部分组成。

2.代码实现请求处理

在web.py中请求参数获取是用方法web.input(); 请求头信息是用方法: web.ctx.env

我们做一个123.html的表单,方便待会测试POST请求

  1. <html>
  2. <head>
  3. <title>hello 123</title>
  4. </head>
  5. <body>
  6. <h1>POST</h1>
  7. <form action="/blog/123" method="POST">
  8. <input type="text" name="id" value=""/>
  9. <input type="password" name="password" value=""/>
  10. <input type="submit" value="submit">
  11. </form>
  12. </body>
  13.  
  14. </html>

然后我们修改下hello.py内容,主要是增加get和post方法获取参数。hello.py和123.html两个文件需要放在同一个目录下,例如桌面。

  1. import web
  2.  
  3. urls = (
  4. '/index', 'index',
  5. '/blog/\d+', 'blog',
  6. '/(.*)', 'hello'
  7. )
  8. app = web.application(urls, globals())
  9.  
  10. class hello:
  11. def GET(self, name):
  12. return open(r'123.html').read()
  13.  
  14. class index:
  15. def GET(self):
  16. query = web.input()
  17. return query
  18.  
  19. class blog:
  20. def POST(self):
  21. data = web.input()
  22. return data
  23.  
  24. if __name__ == "__main__":
  25. app.run()

2.测试效果

先来看看,浏览器访问http://127.0.0.1:8080/index?name=Anthony&city=Beijing,然后回车。

可以看到,获取到了get方法的参数。

再看看post请求参数获取,我们浏览器输入如下图,输入用户名和密码。

点击提交之后,可以获取到刚刚输入的值。

通过上面的举例,我们验证了web.py GET和POST是如何获取请求参数的。

【Python】【web.py】python web py入门-4-请求处理(上)的更多相关文章

  1. 渐进式Web应用(PWA)入门教程(上)

    最近关于渐进式Web应用有好多讨论,有一些人还在质疑渐进式Web应用是否就是移动端未来. 但在这篇文章中我并不会将渐进式APP和原生的APP进行比较,但有一点是可以肯定的,这两种APP的目标都是使用户 ...

  2. 渐进式Web应用(PWA)入门教程(下)

    上篇文章我们对渐进式Web应用(PWA)做了一些基本的介绍. 渐进式Web应用(PWA)入门教程(上) 在这一节中,我们将介绍PWA的原理是什么,它是如何开始工作的. 第一步:使用HTTPS 渐进式W ...

  3. 简单而直接的Python web 框架:web.py

    web.py 是一个Python 的web 框架,它简单而且功能强大.web.py 是公开的,无论用于什么用途都是没有限制的. 先让大家感受一下web.py 的简单而强大: import web ur ...

  4. python简单搭建HTTP Web服务器

    对于Python 2,简单搭建Web服务器,只需在i需要搭建Web服务器的目录(如C:/ 或 /home/klchang/)下,输入如下命令: python -m SimpleHTTPServer 8 ...

  5. 最终版的Web(Python实现)

    天啦,要考试了,要期末考试了,今天把最终版的Python搭建Web代码先写这里记下了.详细的过程先不写了. 这次是在前面的基础上重写 HTTPServer 与 BaseHTTPRequestHandl ...

  6. Python实现简单的Web完整版(一)

    在拖了一周之后,今天终于在一个小时之内将一个迷你的Web写出来了,最近改其它项目的bug头好大,但是好喜欢这样的状态. 黑色的12月,所有的任务都聚集在了12月,然后期末考试也顾不上好好复习了,但是但 ...

  7. Python 实现简单的 Web

    简单的学了下Python, 然后用Python实现简单的Web. 因为正在学习计算机网络,所以通过编程来加强自己对于Http协议和Web服务器的理解,也理解下如何实现Web服务请求.响应.错误处理以及 ...

  8. [Python] 利用Django进行Web开发系列(二)

    1 编写第一个静态页面——Hello world页面 在上一篇博客<[Python] 利用Django进行Web开发系列(一)>中,我们创建了自己的目录mysite. Step1:创建视图 ...

  9. Python全栈开发-web框架之django

    一:web框架 什么是web框架? Web应用框架(Web application framework)是一种开发框架,用来支持动态网站.网络应用程序及网络服务的开发.这种框架有助于减轻网页开发时共通 ...

  10. 第六篇:web之python框架之django

    python框架之django   python框架之django 本节内容 web框架 mvc和mtv模式 django流程和命令 django URL django views django te ...

随机推荐

  1. open-falcon之graph

    功能 存储agent push的数据 为query 提供查询数据接口 参考RRDtool的理念,在数据每次存入的时候,会自动进行采样.归档.在默认的归档策略,一分钟push一次的频率下, 历史数据保存 ...

  2. 【面试题】Java EE面试题

    第一部分:Servlet/JSP快速入门 1.      请列举至少6种javaEE技术,并简述其作用. 解析: javaEE是一系列的技术,主要包扩13种.对于开发人员来说,了解几种主要的技术是非常 ...

  3. Android 逆向工具

    逆向分析工具 https://github.com/skylot/jadx/ https://github.com/google/android-classyshark https://github. ...

  4. LeetCode 40 Combination Sum II(数组中求和等于target的所有组合)

    题目链接:https://leetcode.com/problems/combination-sum-ii/?tab=Description   给定数组,数组中的元素均为正数,target也是正数. ...

  5. 禁用ngen版本的.NET Framework dll加载

    在调试时会发现出于性能考虑.NET Framework dll加载的都是ngen版本,比如:System.dll,实际加载System.ni.dll. 如果希望加载非ngen版本,可以设置系统环境变量 ...

  6. 【BZOJ1814】Ural 1519 Formula 1 插头DP

    [BZOJ1814]Ural 1519 Formula 1 题意:一个 m * n 的棋盘,有的格子存在障碍,求经过所有非障碍格子的哈密顿回路个数.(n,m<=12) 题解:插头DP板子题,刷板 ...

  7. 使用Autolayout xib实现动态高度的TableViewCell

    http://my.oschina.net/u/2360693/blog/481236?p={{totalPage}} 创建Xib文件 首先将Cell做好布局,调整到满意的位置和宽度,然后开始做Aut ...

  8. RabbitMQ服务端配置详解(转自:http://www.cnblogs.com/zhen-rh/p/6884297.html)

    RabbitMQ支持三种配置方式: 1) 读取环境变量中配置, 这包括shell中环境变量和rabbitmq-env.conf/rabbitmq-env-conf.bat文件中配置的环境变量 可配置如 ...

  9. vmware新建Ubuntu时,提示此主机不支持 Intel VT-x

    有两种解决方式 一.BIOS中打开CPU虚拟选项,不同厂商主板配置不同: 以下以个人thinkpad T460P电脑为例: 1.关机,开机,在启动时,按F1今天 BIOS 设置页面: 2.选择 Sec ...

  10. Save vtkMatrix4x4 to a file 保存到文件

    vtkMatrix4x4是VTK中的一个表示4x4矩阵的一种数据结构,有时候我们想把其保存到一个文件中,那么可以使用如下的代码: void writeVtkMatrix4x4ToFile(const ...