flask - Динамически изменить переменную jinja2 на основе таблицы поиска регулярных выражений в базе данных? - PullRequest
0 голосов
/ 27 ноября 2018

Я хочу добавить функцию на свой сайт, чтобы добавить переменную 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 () |safe}} с таблицей поиска регулярных выражений из объектов mongoengine.

Например:

datalayer.objects выглядят так:

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

, когда пользователь посещает URLсоответствие страницы с "/product/.*", затем

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

рендеринг в

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

Мне действительно нужна идея, чтобы добавить эту функцию.Что-нибудь, пожалуйста, дайте мне знать.

большое спасибо, ребята

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...