设为首页 收藏本站
查看: 1370|回复: 0

[经验分享] python Eve RESTFul 尝试笔记

[复制链接]

尚未签到

发表于 2017-4-25 10:05:15 | 显示全部楼层 |阅读模式
0.前言

最近重点研究了yeelink平台的原理和使用,yeelink平台和多数云平台设计一样应用了RESTFul框架。嵌入式侧(或者是客服端侧)的相关技术研究的比较充分(个人这么认为),是不是该弄弄服务器侧的技术了!实现RESTFul的框架有很多,在这里我选择python的Eve框架,先从该框架入手学起。

Eve是一款Python的REST API框架,用于构建和部署高可定制的、全功能的RESTful的Web服务。Eve是一个开源项目,遵循BSD开源协议,已在Python 2.6、2.7以及Python 3.3版本下进行了非常全面的测试。(来自CSDN)




0.1 前提条件

使用Eve框架之前,需要安装python、cURL、MongoDB等工具,并且需要保证MongoDB处于运行状态。python和cURL的安装请google或百度查找相关资料。




1.安装esay_install

Eve框架的安装可使用pip工具或者easy_install,本文选择easy_install。安装esay_install可至以下网址下载ez_setup.py


复制ez_setup.py至硬盘中的某位置,例如保存至E:\temp。然后运行运行便执行整个下载和安装过程,最后会在D:\Python27\Scripts出现easy_install.exe。(注意使用CD命令之前,需要修改盘符,修改盘符可输入E:或F:)
【如果安装过程出现问题尤其是网络问题,请参考博文再尝试一下】


DSC0000.jpg



图1.1 运行ez_setup.py






a)假设python已安装于D:\Python27,若要添加该目录至环境变量。

b)easy_install.exe位于D:\Python27\Scripts目录,同样需要添加该目录至环境变量。




DSC0001.jpg










图1.2 修改环境变量

最后在控制台中输入命令便可完成Eve框架的安装

easy_install eve




2.安装MongoDB

Eve框架需要MongoDB的支持,MongoDB的安装和初步使用可【参考博文】

请注意为了更方便的使用MongoDB可把MongoDB的bin目录加入环境变量。

启动MongoDB时刻指定数据目录,例如数据目录位于D:\MongoDB\data,可通过dbpath参数设置。

mongod --dbpath D:\MongoDB\data

DSC0002.jpg





图2.1 启动mongoDB服务




3.快速开始

新建一个名为run.py的文件,具体代码如下:

from eve import Eve
app = Eve()
if __name__ == '__main__':
app.run()




再新建一个名为settings.py的文件,和run.py存放与同一个路径下,具体代码如下:

SERVER_NAME = '127.0.0.1:5000'
DOMAIN = {
'people': {},
}




虽然现在还无法理解Eve框架的种种细节,但是至少从settings代码中可以发现,现在的RESTFul服务主机为localhost,端口号为5000。运行run.py(注意运行run.py之前一定要开启mongoDB服务,请参考上一小节内容)

DSC0003.jpg





图3.1 Eve框架开始运行




此时若使用cURL工具测试当前的RESTFul API。请注意要使用cURL工具时需要重新打开一个windows控制台,MongoDB 服务和Eve RESTFul服务的控制台均需要保持打开状态。可以输入:




curl -i http://127.0.0.1:5000




DSC0004.jpg







图3.2 cURL请求和返回结果

该例子的返回结果并没有特殊的含义,而返回的内容中包括可选的HATEOAS(该部分还需要研究,计算机或者互联网往往充斥着非常多的概念)。




4.总结

虽然例子没有什么特别的含义,但是可以看出MongoDB和Eve的RESTFul服务已经运行成功。未来几天还将总结一些简单的例子,希望本篇博文对各位有帮助。
【2014年3月补充:发现Eve框架 建立在Flask框架之上,当时刚刚学习python没有能力再前进下去】




5.参考资料

5.1 【官方文档】

5.2 【cURL安装笔记】

5.3 【cURL学习笔记】

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-368952-1-1.html 上篇帖子: Python学习(一)HelloWorld程序 下篇帖子: python删除恼人的.svn
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表