web.py框架构建一个API demo
初识python,因为工作中接触到iredadmin管理后台系统,看了看源代码,发现是使用web.py框架写的,原本只知道python的django框架,原来python也有这么多 框架可用,别有洞天啊。
1.安装python
具体过程不多说了,baidu下,默认我们的python安装目录在 D:\Python27
2.安装web.py
下载源码到你的python项目代码目录(自己随意),比如D:\pythonproject,web.py下载地址:
https://github.com/webpy/webpy/tarball/master
下载后解压到目录中然后进入到cmd命令终端,切换到D:\pythonproject里面的项目安装目录,执行命令:
python setup.py install
至此安装完成。
3.在目录中新建一个文件code.py.代码如下
#!/usr/bin/env python
import web
import json
import xml.etree.ElementTree as ET
tree = ET.parse('users.xml')
root = tree.getroot()
urls = (
'/', 'index',
'/showget','showget',
'/users','list_users',
'/show','getjson',
'/put/(.*)','showpost',
'/showname/(.*)','showname'
)
#1
class index:
def GET(self):
return 'Hello, world!'
#2 read xml
class list_users:
def GET(self):
output = 'users:[';
for child in root:
print 'child',child.tag,child.attrib
output +=str(child.attrib)+','
output += ']';
return output
#3 接收GET请求,返回GET数据中name的值
class showget:
def GET(self):
data = web.input()
return data['name']
#4 接收POST请求,返回json数据
class getjson:
def POST(self):
pyDict = {'one':1,'two':2}
web.header('Content-Type','application/json')
return json.dumps(pyDict)
#5 接收POST请求,返回POST数据
class showpost:
def POST(self):
data = web.data()
return str(data)
#6 name参数的应用
class showname:
def GET(self,name):
return name
if __name__ == '__main__':
app = web.application(urls,globals())
app.run()
users.xml
<users>
<user id="1" name="Rocky" age="38"/>
<user id="2" name="Steve" age="50"/>
<user id="3" name="Melinda" age="38"/>
</users>
web.py自带服务器,所以可以选择使用自带服务器运行,当然也可以自己安装服务器,推荐使用apache+mod_wsgi.so的组合,具体可以百度安装过程。(windows上安装容易出错,可以在linux或者虚拟机上安装)使用命令:Python code.py访问127.0.0.1:8080可以看到hello,world!即表示成功

以上只是web.py的简单演示,当然根据业务自己添加相应接口功能是必须的。
#3 接收GET请求,返回GET数据中name的值127.0.0.1:8080/showget?name=miketwais 返回miketwais
#4 接收POST请求,返回json数据#5 接收POST请求,返回POST数据两个POST 请求请用fiddle来模拟POST请求实验
另外:如果直接COPY代码测试可能会报错,python对格式要求十分严格,自己敲一下吧。。。



浙公网安备 33010602011771号