为了账号安全,请及时绑定邮箱和手机立即绑定

有没有办法让app加载这个新记录吗?

有没有办法让app加载这个新记录吗?

POPMUISE 2023-05-01 17:13:48
把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()
查看完整回答
反对 回复 2023-05-04
?
缥缈止盈

TA贡献2041条经验 获得超4个赞

使用url_for函数,动态传参,应该可以满足你的需求。

查看完整回答
反对 回复 2023-05-04
  • 2 回答
  • 0 关注
  • 158 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信