flask-根据数据库中的正则表达式查找表动态更改jinja2变量?

时间:2018-11-27 04:03:33

标签: javascript python regex flask

我想向我的网站添加功能以添加js变量,具体取决于正则表达式查找表。

我正在使用Flask和mongoengine,并通过flask-admin对其进行管理

例如,我定义了一个mongoengine对象,如下所示:

class dataLayer(db.Document):
    url = db.StringField()
    datalayer = db.StringField() # js code
    published = db.BooleanField(default=True)
    pub_date = db.DateTimeField(default=datetime.now)
    des = db.StringField(default='datalayer implementation')

在所有模板中定义一个Jinja变量:

def get_dataLayer(url):
    """
    input the current url path, based on the regex lookup table to output variable 
    """
    return dataLayer.datalayer or "var dataLayer = [];"

 app.add_template_global(get_dataLayer, 'get_dataLayer')

并在jinja2模板中:

<script>
  {{ get_dataLayer() | safe }}
</script>

我要更改{{get_dataLayer()|安全}}和来自mongoengine对象的正则表达式查找表。

例如:

datalayer.objects看起来像:

url = "/product/.*" # regex 
datalayer = "dataLayer = {"product":1};" # js code

当用户访问与“ /product/.*”匹配的网址页面时,

<script>
  {{ get_dataLayer() | safe }}
</script>

渲染到

<script>
    dataLayer = {"product":1};
</script>

我真的需要一些想法来添加此功能。有什么请让我知道。

非常感谢你们,伙计们

0 个答案:

没有答案