• 【Python】【web.py】python web py入门-4-请求处理(上)


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

    版权声明:本文为博主原创文章,未经博主允许不得转载。 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是如何获取请求参数的。

  • 相关阅读:
    洛谷P3258 [JLOI2014]松鼠的新家
    洛谷P1306 斐波那契公约数
    bzoj4247:挂饰
    [YTU]_2354 (H 实现复数类中的加运算符重载【C++运算符重载】)
    [YTU]_2440 (C++习题 复数类--重载运算符+,-,*,/)
    [YTu]_2441 (C++习题 复数类--重载运算符2+)
    [YTu]_2439(C++习题 复数类--重载运算符+)
    10.3 重载双目运算符
    10.2.1 关于vc++不支持把类的成员函数定义为类的友元函数的处理
    10.2 运算符重载函数作为类成员函数和友元函数
  • 原文地址:https://www.cnblogs.com/zhuzhubaoya/p/9719757.html
Copyright © 2020-2023  润新知