一个 WB 系统下有多个应用,有些设置是共通的,有些需要按应用单独配置。
https://github.com/saltycrane/flask-subdomain-dispatcher-example
app.register_blueprint(dev_bp, subdomain='dev')
1
encro 2020-02-29 17:30:07 +08:00
没看,你的方法是重新 init app 吧,register_blueprint 还是当前 app。
|
2
encro 2020-02-29 17:32:03 +08:00
如果的配置牵涉到底层比如数据库切换,就需要自己分装下 flash 的 db 扩张了。
如果不设计,为什么不实现自己的 config 类呢。 在这里问,不如自己看源码快。 |
3
sunhk25 OP @encro
- 方案一就是根据子域调度,请求后不存在的话初始化一个 app。只有一个子域时速度没问题。 ```python def _get_application(self, host): print("HTTP_HOST", host, self.domain,host.endswith(self.domain)) host = host.split(':')[0] assert host.endswith(self.domain), f'Configuration error.{host},{self.domain}' subdomain = host[:-len(self.domain)].rstrip('.') with self.lock: app = self.instances.get(subdomain) if app is None: configobj = self._get_subdomain_based_config(subdomain) app = self.create_app( configobj=configobj, *self.args, **self.kwargs) self.instances[subdomain] = app return app ``` - 有自己的 config 类、应用配置 AppConfig 继承共通 BaseConfig。然后想向通过 curren_app 轻松读取配置 |
4
encro 2020-03-01 11:19:33 +08:00
很久以前 flask 弄过支持多域名的了,不过是所有域名公用一个 app,你这个是多个 APP,肯定速度上不如一个块,内存占用上就会大很多,比较浪费,除非每个实例代码不一样,否则不建议这样做。
|