把urlroute規則寫到數據庫中了,然后程序啟動的時候動態加載,但是如果我在數據庫中修改了一條數據,怎么通知程序重新加載?例如在我的app.py中:res = dbSession.query(URLMap).all()for x in res:
print 'ROUTE LOAD:/r/%s'%(x.access_token)
app.add_url_rule('/r/%s'%x.url,x.url,do_some_thing,methods=['POST','GET'])然后我在數據庫中插入一條新的URLMap記錄,然后這個時候有沒有辦法讓app加載這個新記錄?我是部署在SAE上的環境,現在的方法是我在SAE上重新啟動這個應用(很幼稚的切換版本,或者在web editor中隨便改個代碼,SAE就會重啟這個app)……有沒有不這么暴力的方法?
2 回答

忽然笑
TA貢獻1806條經驗 獲得超5個贊
可以考慮使用app.url_map.add,而不是app.add_url_rule。
from flask import Flaskfrom werkzeug.routing import Ruleimport random app = Flask(__name__)@app.route('/')def hello_world(): count = random.randint(1, 99999) rule = Rule("/hello%d" % count, endpoint='hellos', methods=['POST', 'GET']) app.url_map.add(rule) print app.url_map print app.url_map._rules return 'Hello World!'@app.route('/hello')def hellos(): return "hello world!"if __name__ == '__main__': app.debug = True app.run()
添加回答
舉報
0/150
提交
取消