0

a.example.com b.example.com 我想放入具有相同应用程序文件夹和不同配置文件的烧瓶中。我找到了以下解决方案,但如何使用它们?


创建一个上下文处理器,将“request.host”注入您的模板并相应地分支。

要获得更多控制,您可以创建一个 Site 对象,从当前请求实例化,并向其中添加属性,例如:

class Site(object):
  def __init__(self, request):
    self.host = request.host

  @cached_property
  def google_analytics_id(self, default=''):
    if self.host == 'python.example.com':
      return <something>
    elif self.host == 'apple.example.com':
      return <something else>
    return default

然后在您的上下文处理器中使用 site = Site(request) 并引用站点。在您的模板中。其他属性的候选对象可能是 HTML 元描述和关键字、站点的标题等。当然,这种分支只能从可以访问请求对象的应用程序部分进行。

保罗

4

1 回答 1

1

看一下 Flask 文档,通过 Application Factories 和 Application Dispatching 实现域处理功能非常容易,这在“Flask 模式”部分中有明确说明:

http://flask.pocoo.org/docs/patterns/appdispatch/

http://flask.pocoo.org/docs/patterns/appfactories/

于 2011-08-07T09:11:01.170 回答