首先是安装web.py,方法有几种,如下
pip install web.py==0.40
easy_install web.py
或者是下载http://webpy.org/install.zh-cn之后再安装
cd C:\Users\Tony\Downloads\webpy-0.40
解压定位到目录之后安装
python setup.py install
WARNING: You are using pip version 19.1.1, however version 19.3.1 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.
若python -m pip install --upgrade pip升级不成功就下面这条语句
python -m pip install --upgrade pip --user升级之后的pip报错
TypeError: 'module' object is not callable删除
python -m pip uninstall pip成功之后测试
python test.py
默认是8080端口,或者指定端口,如python test.py 9999,端口为9999
http://localhost:9999
安装完了之后,开始启动一个web页面,以下使用了三种方式的测试,无模板、有模板、模板嵌套
#!/usr/bin/python
# coding=gbk
import web
#第一部分正则表达式,第二部分接受请求的类名
urls=(
'/i/(.*)', 'index1',
'/m/(.*)','index2',
'/c/(.*)','index3',
)
app=web.application(urls, globals())
T_tony=web.template.frender("templates/m_tony.html") #新建templates目录,存放模板文件
C_tony=web.template.render("templates",base="m_common") #使用公用模板m_common.html
#未使用模板
class index1:
def GET(self, nickname):
print('你好:', nickname+'!') #命令行显示
return 'Hello, ' + nickname + '!' #web页面显示
#使用模板
class index2:
def GET(self,nname):
return T_tony('TonyTitle',nname)
#m_index.html模板,来嵌套m_common.html模板
class index3:
def GET(self,nname):
return C_tony.m_index(nname)
if __name__ == "__main__":
app.run()
m_tony.html
$def with(tname,name1)
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>$tname</title>
</head>
<body>
My Friend $name1
</body>
</html>
m_index.html
$def with(fname)
$var t:This is m_index.html
Hi $fname
m_common.html
$def with(msg)
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>$msg.t</title>
</head>
<body>
$msg
</body>
</html>
最后运行的结果:
python test.py 9999
http://localhost:9999/i/Tony
Web页面将显示Hello,Tony!
http://localhost:9999/m/Tony
页面的Title是:TonyTitle
内容是:My Friend Tony
查看页面源代码是m_tony.html模板呈现
http://localhost:9999/c/Tony
页面的Title是:This is m_index.html
内容是:Hi Tony
查看页面源代码可以知道,m_common.html公共模板被嵌入进来了,其中m_index.html里的变量也可以被m_common.html使用