gpt4 book ai didi

python - 如何在 google-app-engine 模板中启用方法

转载 作者:太空宇宙 更新时间:2023-11-03 19:37:23 25 4
gpt4 key购买 nike

方法是:

def printa(x):
return x

响应是:

self.response.out.write(template.render(path, {'printa':printa}))

html 是:

{{ printa 'sss'}}

我想在我的页面中显示“sss”,

那么如何做到这一点,

已更新

我创建了一个 templatetags 文件夹和 2 个 py 文件:

templatetags 
|--------__init__.py
|--------tags.py

在tags.py中是:

#from django import template
from google.appengine.ext.webapp import template

register = template.Library()

def printa():
return 'ssss'
register.simple_tag(printa)

html 是:

{% load tags%}
{% printa %}

但它显示错误,错误是:

TemplateSyntaxError: 'tags' is not a valid tag library: Could not load template library from django.templatetags.tags, No module named tags

为什么?

出了什么问题?

答案是:

标签.py:

from google.appengine.ext import webapp
register = webapp.template.create_template_register()

@register.filter
def printa(value,y):
return 'url:%s' % y

@register.tag
def printb(x,y):
return str(x.__dict__) +'dddddddddddddddddddddddddddddddd'+ str(y.__dict__)
#return x
#register.tag('printb',do_pagednav)

然后在html中(a是我发送到模板的变量):

{{a|printa:"dwqdq"}}

{% printb %}

工作:

不要使用负载:

{% load sometags %}

最佳答案

使用默认的 webapp 模板系统(实际上是 Django 0.96),你不能这样做。您应该将程序逻辑放在程序文件中,而不是放在模板中,因此您无法将参数传递给变量。

不过,你并没有说出你实际上想做什么;我假设您实际上并不想打印某些内容,因为您可以将该内容放入模板中而不需要函数并打印。无论您实际想要做什么,请注册 custom filter可能就是您正在寻找的。

关于python - 如何在 google-app-engine 模板中启用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2842324/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com