【Python】【web.py】python web py入门-4-请求处理(上)
python web py入门-4-请求处理(上)
这篇我们来介绍一下请求处理过程。其实,在前面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请求
- <html>
- <head>
- <title>hello 123</title>
- </head>
- <body>
- <h1>POST</h1>
- <form action="/blog/123" method="POST">
- <input type="text" name="id" value=""/>
- <input type="password" name="password" value=""/>
- <input type="submit" value="submit">
- </form>
- </body>
- </html>
然后我们修改下hello.py内容,主要是增加get和post方法获取参数。hello.py和123.html两个文件需要放在同一个目录下,例如桌面。
- import web
- urls = (
- '/index', 'index',
- '/blog/\d+', 'blog',
- '/(.*)', 'hello'
- )
- app = web.application(urls, globals())
- class hello:
- def GET(self, name):
- return open(r'123.html').read()
- class index:
- def GET(self):
- query = web.input()
- return query
- class blog:
- def POST(self):
- data = web.input()
- return data
- if __name__ == "__main__":
- 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-请求处理(上)的更多相关文章
- 渐进式Web应用(PWA)入门教程(上)
最近关于渐进式Web应用有好多讨论,有一些人还在质疑渐进式Web应用是否就是移动端未来. 但在这篇文章中我并不会将渐进式APP和原生的APP进行比较,但有一点是可以肯定的,这两种APP的目标都是使用户 ...
- 渐进式Web应用(PWA)入门教程(下)
上篇文章我们对渐进式Web应用(PWA)做了一些基本的介绍. 渐进式Web应用(PWA)入门教程(上) 在这一节中,我们将介绍PWA的原理是什么,它是如何开始工作的. 第一步:使用HTTPS 渐进式W ...
- 简单而直接的Python web 框架:web.py
web.py 是一个Python 的web 框架,它简单而且功能强大.web.py 是公开的,无论用于什么用途都是没有限制的. 先让大家感受一下web.py 的简单而强大: import web ur ...
- python简单搭建HTTP Web服务器
对于Python 2,简单搭建Web服务器,只需在i需要搭建Web服务器的目录(如C:/ 或 /home/klchang/)下,输入如下命令: python -m SimpleHTTPServer 8 ...
- 最终版的Web(Python实现)
天啦,要考试了,要期末考试了,今天把最终版的Python搭建Web代码先写这里记下了.详细的过程先不写了. 这次是在前面的基础上重写 HTTPServer 与 BaseHTTPRequestHandl ...
- Python实现简单的Web完整版(一)
在拖了一周之后,今天终于在一个小时之内将一个迷你的Web写出来了,最近改其它项目的bug头好大,但是好喜欢这样的状态. 黑色的12月,所有的任务都聚集在了12月,然后期末考试也顾不上好好复习了,但是但 ...
- Python 实现简单的 Web
简单的学了下Python, 然后用Python实现简单的Web. 因为正在学习计算机网络,所以通过编程来加强自己对于Http协议和Web服务器的理解,也理解下如何实现Web服务请求.响应.错误处理以及 ...
- [Python] 利用Django进行Web开发系列(二)
1 编写第一个静态页面——Hello world页面 在上一篇博客<[Python] 利用Django进行Web开发系列(一)>中,我们创建了自己的目录mysite. Step1:创建视图 ...
- Python全栈开发-web框架之django
一:web框架 什么是web框架? Web应用框架(Web application framework)是一种开发框架,用来支持动态网站.网络应用程序及网络服务的开发.这种框架有助于减轻网页开发时共通 ...
- 第六篇:web之python框架之django
python框架之django python框架之django 本节内容 web框架 mvc和mtv模式 django流程和命令 django URL django views django te ...
随机推荐
- Elasticsearch 5.x 关于term query和match query的认识
http://blog.csdn.net/yangwenbo214/article/details/54142786 一.基本情况 前言:term query和match query牵扯的东西比较多, ...
- Suggestion: add 'tools:replace="android:value"' to <meta-data> element at AndroidManifest.xml:25:5-27:41 to override.
记录下来少走些坑吧 一:不管用 tools:replace="android:icon,android:theme" xmlns:tools="http://schema ...
- 执行上下文、this
1.js中的执行上下文或者执行环境:execution context,简称EC; 2. console.log(a);//undefined var a=200; fn('lili'); funct ...
- vue里面引入jq的方法
1:因为已经安装了vue脚手架,所以需要在webpack中全局引入jquery 打开package.json文件,在里面加入这行代码,jquery后面的是版本,根据你自己需求更改. dependenc ...
- 在mac终端先打开mysql
以打开xampp下的mysql为例: mysql执行文件是放在bin目录下的,不要cd bin后键入mysql,而应该直接在bin的上级目录时键入bin/mysql,这样才能进入到mysql命令行模式 ...
- tp3.2中怎么访问分类及子分类下面的文章
在项目开发过程中,我们可能会遇到在进入文章分类时需要遍历文章分类及文章子分类下面的文章的情况,具体解决步骤如下: 一.为便于理解,这里列出用到的表及字段 文章分类表(article_cate) 文章表 ...
- 微信小程序插件内页面跳转和参数传递(转)
在此以插件开发中文章列表跳传文章详情为例. 1.首先在插件中的文章列表页面wxml中绑定跳转事件. bindtap='url' data-id="{{item.article_id}}&qu ...
- SharpGL学习笔记(四) 正射投影
上节谈到投影变换分为透视投影(perspective projection)和正射投影(orthographic projection)两种. 透视投影我们已经介绍过了, 现在谈谈正视投影. 正射投影 ...
- Android单例模式
Android设计模式系列(3)--SDK源码之单例模式:http://www.cnblogs.com/qianxudetianxia/archive/2011/08/07/2130306.html ...
- oracle数据库用户加锁和解锁
oracle数据库安装好之后,scott之类的用户默认情况下是被锁住的,无法使用scott用户登录数据库.使用有alter user数据库权限的用户登陆,角色选sysdba,执行以下命令: 解锁命令: ...