Skip to main content
 首页 » 编程设计

python之如何在 django html 中导入模块

2025年05月04日52youxin

我有一个 Django 博客。我需要使用 enchant 检查博文中的文本是否为英文,然后使用 api 进行文本纠错。

我在django博客的虚拟环境中安装了api

pip install pyenchant

项目,并将其包含在已安装的应用程序中,但在博客 base.html 中,我尝试加载它并使用它的功能来检查帖子标题是否为英文,但我什么也没做。如何解决这个问题? 这是我的 html 代码:

{% load enchant %} 
 
{% dictionary = enchant.Dict("en_US") %} 
<p>{% dictionary.check(post.title) %}</p> 

当我运行服务器时没有错误,但是html页面上没有任何内容。 注意:根据 API,它应该是段落标记中的 True of False。 “我在 python shell 中测试了它。”

请您参考如下方法:

你不能这样做。 跟我来:)

pyenchant 中没有模板标签 可以与 django 一起使用(我从文档中学到的)。 您的代码 dictionary = enchant.Dict("en_US") 在 django 后端没有问题,但它也不适合 django 模板。

因此,要实现这一点,您可以创建自定义模板标签,以在您的 Python 代码和模板语言之间建立连接。

您可以按照以下方式操作,它有效:

树:

templatetags 
templatetags/__init__.py 
templatetags/pyenchant_tags.py 

templatetags/pyenchant_tags.py 文件:

import enchant 
from django import template 
 
register = template.Library() 
 
@register.simple_tag 
def please_enchant_my_string(language, string): 
    d = enchant.Dict(language) 
    return d.check(string) 

模板部分,我们的标签调用:

{% load pyenchant_tags %} 
 
<div> 
    {% please_enchant_my_string 'en_US' post.title %} 
</div>