欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用Python的Bottle框架寫一個簡單的服務(wù)接口的示例

 更新時間:2015年08月25日 12:01:39   作者:metaboy  
這篇文章主要介紹了使用Python的Bottle框架寫一個簡單的服務(wù)接口的示例,基于Linux系統(tǒng)環(huán)境,需要的朋友可以參考下

是不是有這么一個場景,對外提供一堆數(shù)據(jù)或者是要返回給用戶一個結(jié)果。但是不想把內(nèi)部的一些數(shù)據(jù)和邏輯暴露給對方。。。簡單點來說,就是想以服務(wù)的方式對外提供一個接口。對于這種有很多處理方式,RPC,搭建一個web服務(wù)啥的。。。。但是這些畢竟都太重量級了,操作起來很麻煩。我這里給出的一種非常easy的方式來處理。使用bottle解決問題。

需求: 檢查一個zookeeper服務(wù)中的某些節(jié)點是否存在,如果存在返回OK,不存在則給出不存的節(jié)點信息。要求返回的信息是和pyunit的結(jié)果信息一致。

實現(xiàn)環(huán)境:

    1.  python 2.7  以及自帶的pyunit
    2.  bottle          作為一個python的簡易服務(wù)器     

pip  install    bottle

    3.  kazoo         一個python的zookeeper客戶端  

pip install kazoo

1. 創(chuàng)建一個python的測試類 zk_check.py

 -*- coding: utf-8 -*-                                                                             
                                         
  from kazoo.client import KazooClient                     
  import unittest                               
  class zktest(unittest.TestCase):                       
    def runTest(self):                            
      zknamespace = “/app/zktest_performance_1”               
      zkhosts = “127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183”  
      ZKTEST_DRIVERS = [“ip1”, “ip2”]      
      ZKTEST_NODES = [“ip3”, “ip4”, “ip5”, “ip6”]
                                         
      driverChildren = []                         
      nodeChildren = []                          
      badDrivers = []                           
      badNodes = []                            
      # checking                              
      zk = KazooClient(hosts=zkhosts, read_only=True)           
      zk.start()                              
      driverFatherPath = zknamespace + “/status/drivers”          
      nodeFatherPath = zknamespace + “/status/nodes”                                      
                          
      if zk.exists(driverFatherPath):                   
        driverChildren = zk.get_children(driverFatherPath)        
        if len(driverChildren) >                                                 
   
          for driver in zktest_DRIVERS:                 
            if driver not in driverChildren:             
              badDrivers.append(driver)                                   
                                         
      if zk.exists(nodeFatherPath):                    
        nodeChildren = zk.get_children(nodeFatherPath)          
        if len(nodeChildren) >                                                 
   
          for node in zktest_NODES:                   
            if node not in nodeChildren:               
              badNodes.append(node)                                                                        
      zk.stop()
      if (len(badNodes)==0) and (len(badDrivers)==0):           
        self.assertEquals(1,1,”pass”)                  
      else:                                
        if len(badDrivers) > 0:                     
          self.assertEquals(1,2,'len : %d , error : %s' % (len(badDrivers),badDrivers))
        if len(badNodes) > 0:                      
          self.assertEquals(1,2,'len : %d , error : %s' % (len(badNodes),badNodes))                                       
  if __name__ == ‘__main__':                          
    unittest.main()

2. 寫一個bottle服務(wù),將結(jié)果輸出

  import commands                                                                                  
  from bottle import route, run, template                    
  @route(‘/alisa')                               
   def index():                                 
     command = “python /Users/metaboy/script/zk_check.py”         
   
     #output = os.popen(command)                        
     return template(‘<b>{{text}}</b>', text=commands.getoutput(command))                         
                                          
  run(host='localhost', port=8888) 

3. 后臺啟動bottle服務(wù),提供外部訪問ip

現(xiàn)在可以直接通過  http://localhost:8888/alisa   進(jìn)行訪問。

相關(guān)文章

  • python包合集shutil示例代碼詳解

    python包合集shutil示例代碼詳解

    shutil是?python?中的高級文件操作模塊,與os模塊形成互補(bǔ)的關(guān)系,os主要提供了文件或文件夾的新建、刪除、查看等方法,還提供了對文件以及目錄的路徑操作,這篇文章主要介紹了python包合集-shutil,需要的朋友可以參考下
    2022-08-08
  • Python運用于數(shù)據(jù)分析的簡單教程

    Python運用于數(shù)據(jù)分析的簡單教程

    這篇文章主要介紹了Python運用于數(shù)據(jù)分析的簡單教程,主要介紹了如何運用Python來進(jìn)行數(shù)據(jù)導(dǎo)入、變化、統(tǒng)計和假設(shè)檢驗等基本的數(shù)據(jù)分析,需要的朋友可以參考下
    2015-03-03
  • 刪除pycharm鼠標(biāo)右鍵快捷鍵打開項目的操作

    刪除pycharm鼠標(biāo)右鍵快捷鍵打開項目的操作

    這篇文章主要介紹了刪除pycharm鼠標(biāo)右鍵快捷鍵打開項目的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • tensorflow pb to tflite 精度下降詳解

    tensorflow pb to tflite 精度下降詳解

    這篇文章主要介紹了tensorflow pb to tflite 精度下降詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • Python生成8位隨機(jī)字符串的方法分析

    Python生成8位隨機(jī)字符串的方法分析

    這篇文章主要介紹了Python生成8位隨機(jī)字符串的方法,結(jié)合實例形式對比分析了2種比較常用的隨機(jī)字符串生成技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2017-12-12
  • python查找目錄下指定擴(kuò)展名的文件實例

    python查找目錄下指定擴(kuò)展名的文件實例

    這篇文章主要介紹了python查找目錄下指定擴(kuò)展名的文件,實例分析了Python文件查詢的技巧,非常具有實用價值,需要的朋友可以參考下
    2015-04-04
  • Python查找函數(shù)f(x)=0根的解決方法

    Python查找函數(shù)f(x)=0根的解決方法

    這篇文章主要介紹了Python查找函數(shù)f(x)=0根的解決方法,涉及Python數(shù)學(xué)運算函數(shù)求解的相關(guān)技巧,需要的朋友可以參考下
    2015-05-05
  • win7安裝python生成隨機(jī)數(shù)代碼分享

    win7安裝python生成隨機(jī)數(shù)代碼分享

    python3生成隨機(jī)數(shù)代碼分享,在win7上測試通過
    2013-12-12
  • Python測試WebService接口的實現(xiàn)示例

    Python測試WebService接口的實現(xiàn)示例

    webService接口是走soap協(xié)議通過http傳輸,請求報文和返回報文都是xml格式的,本文主要介紹了Python測試WebService接口,具有一定的參考價值,感興趣的可以了解一下
    2024-03-03
  • 你們要的Python繪畫3D太陽系詳細(xì)代碼

    你們要的Python繪畫3D太陽系詳細(xì)代碼

    這篇文章主要給大家介紹了關(guān)于如何利用Python 繪畫3D太陽系,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-10-10

最新評論