Crossin的编程教室

标题: Python 实战(0):初识 web.py [打印本页]

作者: crossin先生    时间: 2015-4-6 20:24
标题: Python 实战(0):初识 web.py
web0.jpg
在 Python 系列的基础课程结束之后,很长一段时间我不知道该写点什么。再加上工作很忙,也没法很系统地写一些教程文章。于是之前东拉西扯说过不少方面的东西,也分享过一些别人的文章。但我始终还是觉得该写点什么,虽然更新的频率不会很高。

有些初学 Python 的同学表示能不能提供一些实例,结合基础知识的学习。也有不少已经完成基础内容学习的同学询问,如何可以进一步提高编程能力。鉴于此,我想接下来的一段时间,做一个比较长的系列:这个系列会以一个项目为主线,过程中大概不会专门针对某一个内容去讲,基本是写到哪讲到哪,比较随意。目前对这个项目的初步设定是一个关于电影的网站,会涉及到网站搭建、爬虫、数据处理、数据库等内容,也会稍为涉及一点HTML相关的内容。

以这样的方式来做,对于初学编程的人,可以对软件开发这件事情有个更直观的认识,不再局限于用代码解题这种层面;对于已经有一定的编程基础人,我希望能抛砖引玉,给大家一点启发。你们可以在我这个虚拟项目的基础上,添加自己喜欢的功能,也可以仿照这个流程另起炉灶,做一些自己设计的项目。对于我自己来说,也可以更好地分享一些编程中的经验,而不是再和网上可以搜到的众多教程一样反复炒冷饭。

目前想法:如果进展顺利,会把项目放在 Github 上维护,同时也会在互联网上放置一个可运行的版本供人使(wei)用(guan)。这都是后话了。

那么今天先开个场:既然要做一个跟网站相关的项目,少不了要选择一个基于 Python 的 web 开发框架。这次我打算选择 web.py。我本人对 django 的经验比较多,web.py 并没有用过。不过都说 web.py 很简单,那么用来玩一玩也无妨。同时,也算是对 Aaron Swartz 致以我个人的敬意。


安装 web.py

web.py 有几种下载方式,通常用 easy_install 会比较方便一点。关于 easy_install 的使用网上可以很容易搜到,这里不再赘述。安装 easy_install 后,Linux 和 Mac 下都可以通过命令

sudo easy_install web.py

完成安装。Windows 下应该不用 sudo,手边没有 Win 系统无法验证,见谅。

或者也可以通过 pip 安装、下载或 clone 安装包等方式进行安装。

在你的 Python 命令行下输入

import web

无任何报错说明已安装成功。


运行你的第一个网站

在一个你找得到的地方新建一个叫做 code.py 的文件,然后输入敲入以下代码并保存:

import web

urls = (
    '/', 'index'
)

class index:
    def GET(self):
        return "Hello, world!"

if __name__ == "__main__":
    app = web.application(urls, globals())
    app.run()

具体这些代码的含义今天先不解释,保证不要输错就好。

从命令行进入 code.py 所在的目录,运行:

python code.py

不出意外的话,应该会看到输出:

http://0.0.0.0:8080/

用浏览器打开这个地址,就可以看到一个只写着 Hello, world! 的页面。不过有些浏览器(比如我的 Chrome)会不认 0.0.0.0 这个地址而进行搜索。如果遇到这种情况,可以在运行时指定地址为 127.0.0.1,即:

python code.py 127.0.0.1

然后访问 http://127.0.0.1:8080/ 就 OK 了。

也许这就是你人生第一个网站吧,想想是不是还有点小激动呢。前方的路还很长,欲速则不达,且行且珍惜。

如果你按捺不住想要了解更多,可以先去 webpy.org 瞅瞅。上面的新手引导有中文版本。




someweb-0-code.py

189 Bytes, 下载次数: 100

附代码


作者: pandaqr    时间: 2015-5-4 21:41
老师你好, 我用的是mac ,python版本是2.7.6,但似乎没法装web.py,直接打sudo easy_install web.py, 显示有error。安装pip也是。  在Stackover上找到说应该这样安装: 1. Install easy_install
curl https://bootstrap.pypa.io/ez_setup.py -o - | sudo python
2. Install pip
sudo easy_install pip
但似乎还是不行。
这是我的错误截图。。。非常感谢。
安装easy_install
屏幕快照 2015-05-04 下午9.33.55.png
安装web.py
屏幕快照 2015-05-04 下午9.39.23.png
作者: crossin先生    时间: 2015-5-5 21:29
pandaqr 发表于 2015-5-4 21:41
老师你好, 我用的是mac ,python版本是2.7.6,但似乎没法装web.py,直接打sudo easy_install web.py, 显 ...


这个我也不知道什么问题
如果这样安装不行,你试试看直接下载web.py的代码,然后直接copy到python目录的site-packages目录下面
作者: 一直潜行的猫    时间: 2015-12-8 16:56
1

YG]5NF1UF1@%0[}{8OQN2}4.png (2.33 KB, 下载次数: 378)

返回的是 _name_ 没有被定义,代码没问题

返回的是 _name_ 没有被定义,代码没问题


作者: crossin先生    时间: 2015-12-8 17:53
一直潜行的猫 发表于 2015-12-8 16:56
1

name前后是两个下划线,系统定义的变量
作者: Kunz    时间: 2016-3-27 17:16
我出现如下错误

QQ图片20160327171545.png (5.27 KB, 下载次数: 336)

QQ图片20160327171545.png


作者: Kunz    时间: 2016-3-27 17:25
我安装web是这样的,是不是没有装成功啊?

QQ图片20160327171545.png (7 KB, 下载次数: 332)

QQ图片20160327171545.png


作者: crossin先生    时间: 2016-3-27 23:05
Kunz 发表于 2016-3-27 17:25
我安装web是这样的,是不是没有装成功啊?

看最后有没有successful
打开python命令行 import 一下,不报错就是成功了
作者: Kunz    时间: 2016-3-28 12:33
crossin先生 发表于 2016-3-27 23:05
看最后有没有successful
打开python命令行 import 一下,不报错就是成功了

应该是装成功了,可以import,没有报错,那是怎么回事呢??
作者: crossin先生    时间: 2016-3-28 17:32
Kunz 发表于 2016-3-28 12:33
应该是装成功了,可以import,没有报错,那是怎么回事呢??

import web不报错就装成功了
作者: xk880099    时间: 2016-8-26 11:53
crossin先生 麻烦您帮我瞧瞧这个问题该如何解决呢,显示错误代码100131.

我是小白,网上查了没啥资料,也不太懂如何解决。。
QQ图片20160826115244.jpg
QQ图片20160826115313.png

作者: crossin先生    时间: 2016-8-26 16:10
xk880099 发表于 2016-8-26 11:53
crossin先生 麻烦您帮我瞧瞧这个问题该如何解决呢,显示错误代码100131.

我是小白,网上查了没啥资料, ...

换个端口运行,然后看看是不是有什么防火墙或者杀毒软件先关掉,还有翻墙工具也可能会影响
作者: aq1001735    时间: 2017-2-4 11:10
127.0.0.1:4458 - - [04/Feb/2017 11:07:25] "HTTP/1.1 GET /" - 405 Method Not Allowed
127.0.0.1:4458 - - [04/Feb/2017 11:07:25] "HTTP/1.1 GET /favicon.ico" - 404 Not Found
报这个错误  怎么回事?怎么解决呀?

QQ截图.png (13.97 KB, 下载次数: 244)

QQ截图.png


作者: crossin先生    时间: 2017-2-5 00:12
aq1001735 发表于 2017-2-4 11:10
127.0.0.1:4458 - - [04/Feb/2017 11:07:25] "HTTP/1.1 GET /" - 405 Method Not Allowed
127.0.0.1:4458 - ...

是不是代码里定义的方法 GET 写出小写了
作者: Asgarder    时间: 2017-2-16 15:07
老师你好,当我运行完代码访问 http://127.0.0.1:8080/ 显示“127.0.0.1 拒绝了我们的连接请求。”我用的是chrome浏览器,换成IE仍然不行。访问http://0.0.0.0:8080/显示“网址为 http://0.0.0.0:8080/ 的网页可能暂时无法连接,或者它已永久性地移动到了新网址。”
请问这是怎么回事?
作者: crossin先生    时间: 2017-2-16 15:23
Asgarder 发表于 2017-2-16 15:07
老师你好,当我运行完代码访问 http://127.0.0.1:8080/ 显示“127.0.0.1 拒绝了我们的连接请求。”我用的是 ...

在后台的输出里看下,确定代码是正常运行中无报错,且运行在 8080 端口
另外就是不要开全局翻墙的软件,或者也可能一些防火墙软件给拦住了
作者: Asgarder    时间: 2017-2-16 15:48
crossin先生 发表于 2017-2-16 15:23
在后台的输出里看下,确定代码是正常运行中无报错,且运行在 8080 端口
另外就是不要开全局翻墙的软件,或 ...

刚才试出来了。原因是我之前一直是在IDE里面运行程序,刚才在cmd里面试了一下,就出来了。那么问题来了,为什么在IDE(我用的是spyder)里面运行没用呢?希望老师可以解答一下
作者: crossin先生    时间: 2017-2-17 13:06
Asgarder 发表于 2017-2-16 15:48
刚才试出来了。原因是我之前一直是在IDE里面运行程序,刚才在cmd里面试了一下,就出来了。那么问题来了, ...

具体原因我也不清楚。每个编辑器对于控制台都有自己的实现,和系统的命令行毕竟不一样,有时难免会出兼容性的问题
作者: Asgarder    时间: 2017-2-17 15:05
crossin先生 发表于 2017-2-17 13:06
具体原因我也不清楚。每个编辑器对于控制台都有自己的实现,和系统的命令行毕竟不一样,有时难免会出兼容 ...

好的,了解了,谢谢老师
作者: LoveChoa    时间: 2017-8-16 12:31
现在这个版本应该怎么安装呢

py.png (187.09 KB, 下载次数: 234)

py.png


作者: crossin先生    时间: 2017-8-17 10:50
LoveChoa 发表于 2017-8-16 12:31
现在这个版本应该怎么安装呢

python 装好后自带有 pip,你用pip来安装就好了。
https://zhuanlan.zhihu.com/p/20760860
作者: LoveChoa    时间: 2017-8-19 11:04
crossin先生 发表于 2017-8-17 10:50
python 装好后自带有 pip,你用pip来安装就好了。
https://zhuanlan.zhihu.com/p/20760860 ...

py2.png 表示已经下好easy_install ,但下一步在命令行的要怎么操作啊= =我在python下输入ez_setup.py都一直报错
作者: crossin先生    时间: 2017-8-19 12:10
LoveChoa 发表于 2017-8-19 11:04
表示已经下好easy_install ,但下一步在命令行的要怎么操作啊= =我在python下输入ez_setup.py都一直报错 ...

是在命令行,不进入python
作者: LoveChoa    时间: 2017-8-19 13:03
crossin先生 发表于 2017-8-19 12:10
是在命令行,不进入python

py3.png 我开始慌了= =  

作者: crossin先生    时间: 2017-8-19 17:02
LoveChoa 发表于 2017-8-19 13:03
我开始慌了= =

命令不是可以吗?只不过你什么也没加,你这是要干嘛呢?
作者: LoveChoa    时间: 2017-8-20 20:38
crossin先生 发表于 2017-8-19 17:02
命令不是可以吗?只不过你什么也没加,你这是要干嘛呢?

py4.png 还是有错误=A= 望指点


作者: crossin先生    时间: 2017-8-20 22:29
LoveChoa 发表于 2017-8-20 20:38
还是有错误=A= 望指点

提示里说了,你装的这个ipython版本不支持你的python版本。
你试试用pip装吧。或者指定一下ipython版本
作者: LoveChoa    时间: 2017-8-29 21:36
crossin先生 发表于 2017-8-20 22:29
提示里说了,你装的这个ipython版本不支持你的python版本。
你试试用pip装吧。或者指定一下ipython版本 ...

搞定了 谢谢谢谢
作者: harrypaul    时间: 2017-9-11 19:32
pandaqr 发表于 2015-5-4 21:41
老师你好, 我用的是mac ,python版本是2.7.6,但似乎没法装web.py,直接打sudo easy_install web.py, 显 ...

MAC默认支持Python 2.7所以不用安装。

1.安装pip

sudo easy_install pip



2.安装Web.py

sudo pip install Web.py
作者: akfree    时间: 2017-9-12 21:43
建议下一个pip 之后下载很方便 直接输入 pip install xxx(这次就是web.py)
我安装的网站指导:https://taizilongxu.gitbooks.io/ ... ntent/8/README.html
作者: 13253620252    时间: 2017-11-8 09:00
先生,我输出的import web没有问题,但是web.application报错,请问是怎么回事呢?

捕获.PNG (4.01 KB, 下载次数: 227)

捕获.PNG


作者: crossin先生    时间: 2017-11-8 10:30
13253620252 发表于 2017-11-8 09:00
先生,我输出的import web没有问题,但是web.application报错,请问是怎么回事呢? ...

你确认下,不要把自己的文件夹或者文件叫做 web web.py code 之类的,会冲突的
作者: 13253620252    时间: 2017-11-8 22:10
crossin先生 发表于 2017-11-8 10:30
你确认下,不要把自己的文件夹或者文件叫做 web web.py code 之类的,会冲突的 ...

确认了,把之前文件夹的名字web也改了,但是还是出现这样的问题。下面是编的程序和报错:

捕获.PNG (7.11 KB, 下载次数: 223)

捕获.PNG

捕获1.PNG (4.4 KB, 下载次数: 228)

捕获1.PNG


作者: crossin先生    时间: 2017-11-8 22:35
13253620252 发表于 2017-11-8 22:10
确认了,把之前文件夹的名字web也改了,但是还是出现这样的问题。下面是编的程序和报错:

...

https://segmentfault.com/q/1010000000094639
作者: 13253620252    时间: 2017-11-13 13:20
先生,我在cmd中运行出了网页的地址,但是用IE浏览器打开为什么会显示没有呢?

捕获1.PNG (1.67 KB, 下载次数: 213)

捕获1.PNG

捕获.PNG (10.21 KB, 下载次数: 210)

捕获.PNG


作者: crossin先生    时间: 2017-11-13 14:29
13253620252 发表于 2017-11-13 13:20
先生,我在cmd中运行出了网页的地址,但是用IE浏览器打开为什么会显示没有呢? ...

http://localhost:8080/
或者
http://127.0.0.1:8080/

仔细看教程
作者: 13253620252    时间: 2017-11-13 16:35
用谷歌浏览器可以打开,但是IE浏览器不行。这是为什么呢
作者: crossin先生    时间: 2017-11-14 09:14
13253620252 发表于 2017-11-13 16:35
用谷歌浏览器可以打开,但是IE浏览器不行。这是为什么呢

那就是IE不支持呗
作者: wangyange    时间: 2017-12-20 10:04
老师,我通过easy_install安装web.py了,但是始终导入不到它,就像图中的一样,这个该怎么办?

企业微信截图_15137353596983.png (157.1 KB, 下载次数: 269)

企业微信截图_15137353596983.png


作者: wangyange    时间: 2017-12-20 10:20
wangyange 发表于 2017-12-20 10:04
老师,我通过easy_install安装web.py了,但是始终导入不到它,就像图中的一样,这个该怎么办?
...

已经解决啦,不知道为啥重启下pycharm就好了
作者: crossin先生    时间: 2017-12-22 14:20
wangyange 发表于 2017-12-20 10:04
老师,我通过easy_install安装web.py了,但是始终导入不到它,就像图中的一样,这个该怎么办?
...

去设置里看你的python路径对不对,是不是装了多个python
设置里也可以看到你装了那些库,可以从里面直接安装
作者: Frank_Chan    时间: 2018-2-17 19:37
本帖最后由 Frank_Chan 于 2018-2-17 19:43 编辑

您好,我的运行完进入浏览器之后显示的不对。


作者: coolqing    时间: 2018-5-8 14:38
老师您好,请问下,我web.py应该是安装成功了,但是import报错了,这是哪里出问题了吗?感谢!

2.jpg (6.63 KB, 下载次数: 279)

2.jpg

1.jpg (20.96 KB, 下载次数: 277)

1.jpg


作者: coolqing    时间: 2018-5-8 15:26
coolqing 发表于 2018-5-8 14:38
老师您好,请问下,我web.py应该是安装成功了,但是import报错了,这是哪里出问题了吗?感谢!
...

已经成功了,用pip 安装成功了~
作者: 有点不够帅    时间: 2018-6-24 15:51
web安装成功 运行程序出现这问题是怎么回事

E9[S}WHG`E8S7ZVOM7FCQ$N.png (18.84 KB, 下载次数: 277)

E9[S}WHG`E8S7ZVOM7FCQ$N.png


作者: crossin先生    时间: 2018-6-24 20:13
有点不够帅 发表于 2018-6-24 15:51
web安装成功 运行程序出现这问题是怎么回事

好像是你Python安装有问题
正常python里应该带有这个dll
重装python试下
作者: boat    时间: 2019-8-12 20:52
学习这一课最大的问题是安装问题。
Windows系统,用的python版本是3.7.3,安装过pip,想直接通过pip安装.
在命令行python安装目录下输入pip install web.py一直报错,后来参考了下面的文章
https://blog.csdn.net/u012046327/article/details/78861525
改成pip install web.py==0.40dev0,安装成功。




欢迎光临 Crossin的编程教室 (https://bbs.crossincode.com/) Powered by Discuz! X2.5