2016-03-28 46 views
0

我剛開始對蟒蛇, 編程,寫了這個代碼連接到數據庫,並simultaniusly

from bottle import route, run, template 
import pymongo 
from pymongo import MongoClient 


connection = MongoClient('localhost', 27017) 
db = connection.tongler 

@route('/hello/<name>') 
def index(name): 
    return template("Hello {{name}}", name=name) 

run(host='localhost', port=8888) 

print db 

但它打印db對象只終止8888聽衆後等待HTTP請求,我怎麼能偵聽HTTP請求並執行其他操作而不等待http服務器終止?這是如何完成的?

+0

你想要做什麼操作? –

+1

通常情況下,如果您需要彼此獨立完成任務,則必須使用線程或進程。有時候你也可以使用某種形式的協作式多線程,但是我不知道bottle run方法是否像這樣實現(可能不是)。 –

回答

1

執行該文件後,第一個要執行的命令是run方法調用,該方法調用將啓動一個進程,該進程將阻止應用程序的其餘部分執行直到它被關閉。

要使用數據庫,您必須執行數據庫操作,作爲請求的結果或在方法調用之前的某處執行。

例如,假設你想顯示在數據庫中的記錄,你可以做這樣的:

@route('/records/<id>') 
def show_records(id=None): 
    results = db.mycollection.find_one({'id': id}) 
    return template('Record: {{record}}', record=results)