与CamelCas建立联系

2024-06-28 19:55:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用CamelCase创建一个新页面。我正在学习一个教程,他们使用自定义过滤器来wikify页面:

from django import template
import re

wikilink = re.compile("\\b([A-Z][a-z]+[A-Z][a-z]+)\\b")
register = template.Library()

@register.filter
def wikify(value):
    return wikilink.sub(r"<a href='/wikicamp/\1/'>\1</a>", value)

在turtorial中,这个代码应该可以工作。我没有收到错误,但在我的应用程序中它只显示以下内容:

<a href='/wikicamp/NewPage/'>NewPage</a>

而不是NewPage作为CamelCase“word”。 我能换一种方式吗?或者我做错了什么?你知道吗


Tags: importreregister过滤器value教程template页面
1条回答
网友
1楼 · 发布于 2024-06-28 19:55:13

您需要将输出标记为“安全”以便呈现HTML。如果您信任可以提供给模板筛选器的任何输入,并且您知道它不会是恶意的,则可以这样做:

from django.utils.safestring import mark_safe    

@register.filter
def wikify(value):
    output = wikilink.sub(r"<a href='/wikicamp/\1/'>\1</a>", value)
    return mark_safe(output)

相关问题 更多 >