web.py是一个轻量级的web开发框架,作为初学者,我计划先从这个学起来。 这里是webpy的官方网站。
web.py is a web framework for Python that is as simple as it is powerful. web.py is in the public domain; you can use it for whatever purpose with absolutely no restrictions.
下面先在Windows下搭建web.py环境,网上提供的方法大部分是先把源码包下载下来,然后进入后python setup.py install 安装,但是用这种方法我总是安装失败。原因猜测是我的python版本和web.py版本匹配问题,后来解决方法是:通过pip安装。
在Windows DOS窗口里输入:pip install web.py==0.40
pip如果不识别,需要在环境变量PATH中添加C:/Python27/Scripts
它会提示如下错误信息:
![6d024824ff0f9836500d29d6b237cb2e.png](https://i-blog.csdnimg.cn/blog_migrate/bd5cd6070a0aa4ad2708eb9480652275.jpeg)
这时输入python -m pip install --upgrade pip
![3547f0cc694ada4edde6655f3f70c398.png](https://i-blog.csdnimg.cn/blog_migrate/0be47e1e480bb860cd95e2651b3cc454.jpeg)
之后再重新输入pip install web.py==0.40
就不再报错了。
![a8327f60a67f2892f48f6e99cf83eddd.png](https://i-blog.csdnimg.cn/blog_migrate/fdbbdfa631d5511c75cd495f640117a6.jpeg)
安装成功后,进入到目录里执行:python hello.py
hello.py内容如下:
import web urls = ('/hello', 'hello', ) class hello(object): def GET(self): return 'hello world!' if __name__ == "__main__": app = web.application(urls, globals()) app.run()
![796657d436b14eb7d3f38ba25ba1a01d.png](https://i-blog.csdnimg.cn/blog_migrate/d25fa54d734dfe28f7af2dc976659f8c.jpeg)
浏览器中输入:
![b8438ab4f27bf6745e63c304e10eb122.png](https://i-blog.csdnimg.cn/blog_migrate/639b944cc7e5ad1f45a3924962552aa3.jpeg)
在阿里云上部署,也是完全一样的操作。
我们来解释下这段代码:
![62b8fbf3c0f936339a49b5892b9be697.png](https://i-blog.csdnimg.cn/blog_migrate/80132466f5a195733ad5dc2324814b99.jpeg)
第1行: import web, 在每个web.py 应用,必须先import web 模块
第3行: 把URL结构告诉web.py
第一部分是匹配URL的正则表达式,比如例子中的'/hello',对应你在浏览器中输入的URL是localhost:8080/hello,如果你把改成hello2,你再输入原来URL就无法正常访问了,
![f33832c87e36548aa10b28f4b0c60087.png](https://i-blog.csdnimg.cn/blog_migrate/bce48843d399e66b9656d2a84201e031.jpeg)
你得改成如下URL才行
![886490a2edcb19fdaeb8a5cc73062513.png](https://i-blog.csdnimg.cn/blog_migrate/9460dc9719a6b41fc6870b87863315cd.jpeg)
如果你改成
urls = ('/', 'hello',
)
直接这么输入就行了
![964fc7194463ff2d2f8b0f00490c4b6b.png](https://i-blog.csdnimg.cn/blog_migrate/fe8479694ab64680d3edeb5310f7ea71.jpeg)
第二部分是接受请求的类名称。
第6-8行:
对应上面的hello,是一个类,
GET用于请求网页文本。
下面是返回的东西,也就是我们网页看到的东西
当有人用GET请求/时,这个GET函数随时会被web.py调用。
第10行:
一个python文件通常有两种使用方法,第一是作为脚本直接执行,第二是 import 到其他的 python 脚本中被调用(模块重用)执行。因此 if __name__ == 'main': 的作用就是控制这两种情况执行代码的过程,在 if __name__ == 'main': 下的代码只有在第一种情况下(即文件作为脚本直接执行)才会被执行,而 import 到其他脚本中是不会被执行的。
第11行:
这会告诉web.py去创建一个基于我们刚提交的URL列表的application。这个application会在这个文件的全局命名空间中查找对应类。
第12行:
这会告诉web.py为我们启动上面我们写的应用。