2015-03-25 40 views
2

考慮我有這樣的下面的代碼:註冊新模塊,如在Python瓶一個REST API動態

from flask import Flask 
from flask import request 

app = Flask(__name__) 


@app.route('/test', methods=['GET']) 
def get(): 
    if request.method == 'GET': 
    return 'hello' 

@app.route('/post', methods=['POST']) 
def post(): 
    if request.method == 'POST': 
     name = request.form['name'] 
     return name 

if __name__ == '__main__': 
    app.run() 

我運行代碼和服務器與這兩個API端點開始。

現在,我想在同一個應用程序中註冊另一個端點,而無需重新啓動當前的服務器,以便在現有端點上進行的任何事務都不會中斷。

有沒有一種方法可以註冊一個新的端點關閉/重新啓動服務器在同一個燒瓶應用程序?

回答

0

您可以使用燒瓶add_url_rule()函數在代碼中的任意位置註冊新規則。這個函數實際上也是由route()裝飾器調用的。

@app.route('/') 
def index(): 
    pass 

等同於:

def index(): 
    pass 
app.add_url_rule('/', 'index', index) 
+0

我還沒有看到它運行。 我按照您所說的方式創建了一個新模塊,並與運行的服務器並行運行。它不註冊新的URL。我找不到錯誤。 – mayankchutani 2015-03-27 02:47:17

+0

當然,這是行不通的。你寫道,你想動態註冊一個新的結局,這將與我的代碼一起工作。並不是說你想要一個完全不同的程序來在另一個Flask應用程序中註冊一個端點...... – 2015-03-27 09:48:01

+0

我是新手,因此可能無法清晰地表達自己。 以上兩個函數都在我的一個python腳本中。服務器正在本地主機上運行。我的問題是,我可以製作另一個像上面這樣的函數,並在同一臺服務器上註冊端點而不停止當前運行的服 – mayankchutani 2015-03-28 12:25:45