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:)


图1.1 运行ez_setup.py

a)假设python已安装于D:\Python27,若要添加该目录至环境变量
b)easy_install.exe位于D:\Python27\Scripts目录,同样需要添加该目录至环境变量


 
 
图1.2 修改环境变量
最后在控制台中输入命令便可完成Eve框架的安装
easy_install eve

2.安装MongoDB

Eve框架需要MongoDB的支持,MongoDB的安装和初步使用可参考以下博文:
请注意为了更方便的使用MongoDB可把MongoDB的bin目录加入环境变量。
启动MongoDB时刻指定数据目录,例如数据目录位于D:\MongoDB\data,可通过dbpath参数设置。
 mongod --dbpath D:\MongoDB\data


 
图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服务,请参考上一小节内容)


 
图3.1 Eve框架开始运行
此时若使用cURL工具测试当前的RESTFul API。
请注意要使用cURL工具时需要重新打开一个windows控制台,MongoDB 服务和Eve RESTFul服务的控制台均需要保持打开状态。可以输入:
curl -i http://127.0.0.1:5000


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

4.总结

虽然例子没有什么特别的含义,但是可以看出MongoDB和Eve的RESTFul服务已经运行成功。未来几天还将总结一些简单的例子,希望本篇博文对各位有帮助。

5.参考资料

python Eve RESTFul 尝试笔记的更多相关文章

  1. Python学习的个人笔记(基础语法)

    Python学习的个人笔记 题外话: 我是一个大二的计算机系的学生,这份python学习个人笔记是趁寒假这一周在慕课网,w3cschool,还有借鉴了一些博客,资料整理出来的,用于自己方便的时候查阅, ...

  2. Requests:Python HTTP Module学习笔记(一)(转)

    Requests:Python HTTP Module学习笔记(一) 在学习用python写爬虫的时候用到了Requests这个Http网络库,这个库简单好用并且功能强大,完全可以代替python的标 ...

  3. 关于Python网络爬虫实战笔记③

    Python网络爬虫实战笔记③如何下载韩寒博客文章 Python网络爬虫实战笔记③如何下载韩寒博客文章 target:下载全部的文章 1. 博客列表页面规则 也就是, http://blog.sina ...

  4. python网络爬虫学习笔记

    python网络爬虫学习笔记 By 钟桓 9月 4 2014 更新日期:9月 4 2014 文章文件夹 1. 介绍: 2. 从简单语句中開始: 3. 传送数据给server 4. HTTP头-描写叙述 ...

  5. Python Built-in Function 学习笔记

    Python Built-in Function 学习笔记 1. 匿名函数 1.1 什么是匿名函数 python允许使用lambda来创建一个匿名函数,匿名是因为他不需要以标准的方式来声明,比如def ...

  6. python高级编程读书笔记(一)

    python高级编程读书笔记(一) python 高级编程读书笔记,记录一下基础和高级用法 python2和python3兼容处理 使用sys模块使程序python2和python3兼容 import ...

  7. [转]python实现RESTful服务(基于flask)

    python实现RESTful服务(基于flask) 原文: https://www.jianshu.com/p/6ac1cab17929  前言 上一篇文章讲到如何用java实现RESTful服务, ...

  8. python 调用RESTFul接口

    本周需要将爬虫爬下来的数据入库,因为之前已经写好PHP的接口的,可以直接通过python调用PHP接口来实现,所以把方法总结一下. //python编码问题,因为好久用,所以很容易出现 # -*- c ...

  9. python数据分析入门学习笔记儿

    学习利用python进行数据分析的笔记儿&下星期二内部交流会要讲的内容,一并分享给大家.博主粗心大意,有什么不对的地方欢迎指正~还有许多尚待完善的地方,待我一边学习一边完善~ 前言:各种和数据 ...

随机推荐

  1. asp.net 中的那些编译错误(1):控件包含代码块(即<% ... %>),因此无法修改控件集合

    在编译页面的时候出现:控件包含代码块(即 <% ... %>),因此无法修改控件集合错误 一般原因是: 在<head runat="server">< ...

  2. 简单Word操作

    //创建空白Word文档 private void button1_Click(object sender, EventArgs e) { object missing = Missing.Value ...

  3. 关于android MTK相机L版本,切换屏幕比例后,分辨率随之改变,但重新进入相机后原有分辨率不再生效问题

    BUG详细:比如4:3的时候是200W,切成全屏变400W,重新切回4:3为300W,退出相机后,重新进入又变成200W. 原因分析:这个版本的设计如此,当你点选屏幕比例的时候,程序设计是把这个比例值 ...

  4. C# trace debug TraceListener调试信息详解

    在C#编程中,可能要碰到把调试信息输出的问题,我们可以自己把信息显示在某个控件上,但是MS自己提供了一套机制帮助我们输出一些调试信息,这些信息有助于我们判断程序的走向,不用自己再去额外写调试代码了. ...

  5. Visual Studio 2010 单元测试目录

    单元测试的重要性这里我就不多说了,以前大家一直使用NUnit来进行单元测试,其实早在Visual Studio 2005里面,微软就已经集成了一个叫Test的专门测试插件,经过几年的发展,这个工具现在 ...

  6. C#防SQL注入代码的实现方法

    对于网站的安全性,是每个网站开发者和运营者最关心的问题.网站一旦出现漏洞,那势必将造成很大的损失.为了提高网站的安全性,首先网站要防注入,最重要的是服务器的安全设施要做到位. 下面说下网站防注入的几点 ...

  7. 数据库备份工具mysqldump重要参数详解

    1. --single-transaction InnoDB 表在备份时,通常启用选项 --single-transaction 来保证备份的一致性,实际上它的工作原理是设定本次会话的隔离级别为:RE ...

  8. jQuery 如何创建基本插件(翻译)

    有时候,你希望有一块功能在整个代码当中都可以使用.例如,你可能想要有一个单一的方法可以在jQuery选择器上进行调用,用于处理该选择器上的一系列操作.又或许你编写了一个十分有用的工具函数,并希望能够简 ...

  9. (转)ligerUI 使用教程之Tip介绍与使用

    概述:   ligertip是ligerUI系列插件中的tooltip类插件,作用是弹一个浮动层,起提示作用   阅读本文要求具备jQuery的基本知识,不然文中的javascript代码不易理解 截 ...

  10. table-css