• python Eve RESTFul 尝试笔记


    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: emp。然后运行运行便执行整个下载和安装过程,最后会在D:Python27Scripts出现easy_install.exe。   (注意使用CD命令之前,需要修改盘符,修改盘符可输入E:或F:)
     
    图1.1 运行ez_setup.py 
     
      a)假设python已安装于D:Python27,若要添加该目录至环境变量 
    b)easy_install.exe位于D:Python27Scripts目录,同样需要添加该目录至环境变量 
      
     
      图1.2 修改环境变量 
      最后在控制台中输入命令便可完成Eve框架的安装 
    easy_install eve 
     

    2.安装MongoDB

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

    5.1 官方文档:   http://python-eve.org/quickstart.html 
     
  • 相关阅读:
    windows安装pkg-config
    完美解决Cannot download "https://github.com/sass/node-sass/releases/download/binding.nod的问题
    iOS 解析RFC3339时间格式
    依赖工程开发,编译报错Command Libtool failed with a nonzero exit code
    移除项目中的UIWebView
    输出手机中的字体与常用的苹方字体名称
    Null passed to a callee that requires a non-null argument
    SDK内本地化处理 localizedStringForKey:value:table:
    iOS [AFHTTPSessionManager GET:parameters:progress:success:failure:]: unrecognized selector sent to
    xcode搜索路径缩写
  • 原文地址:https://www.cnblogs.com/NL34/p/3539030.html
Copyright © 2020-2023  润新知