2015-10-12 55 views
0

在我的python腳本中,我分別在各個線程上進行藍牙和RF通信。我想使用Bottle web框架在同一腳本中添加Rest Web Method。在現有的python腳本中添加Bottle框架

如果我添加下面的代碼,在現有的python腳本中,它不會工作。如何使它在現有的腳本中工作。

from bottle import Bottle, run 

app = Bottle() 

@app.route('/hello') 
def hello(): 
    return "Hello World!" 

run(app, host='localhost', port=8080, debug = True) 

回答

0

它在我的系統上正常工作。你最終解決了這個問題嗎?指向http://localhost:8080/hello的瀏覽器顯示「Hello World」

+0

它只有當我把上述代碼放在單獨的文件ABD運行它...但我希望它是另一個Python腳本文件的一部分...然後它不會工作... –

0

它不起作用?您的瀏覽器輸出Hello world?藍牙應用程序?

您是否在單獨的線程中添加run(app, host='localhost', port=8080, debug = True)調用(此函數調用將阻止)?

例如:

import threading 
import time 
from bottle import Bottle, run 

app = Bottle() 

@app.route('/hello') 
def hello(): 
    return "Hello World!" 

class MyRestServer(threading.Thread): 

    def __init__(self, app, host, port, debug): 
     self.app = app 
     self.host = host 
     self.port = port 
     self.debug = debug 
     threading.Thread.__init__(self) 

    def run(self): 
     self.server = self.app.run(
           host=self.host, 
           port=self.port, 
           debug=self.debug 
          ) 


s = MyRestServer(app=app, host='localhost', port=8080, debug=True) 
s.start() 

# Execution continues 
print 'Rest server started' 

while True: 
    time.sleep(2) 
    print 'Rest server running' 

更換while True:部分與應用程序的其餘部分。

+0

嗨邁克,你能請分享示例代碼以在單獨的線程中調用[運行(app,host ='localhost',port = 8080,debug = True)]。 –