首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在模板标记中实现markdown2?获取TemplateSyntaxError 'md2‘不是注册的标记库

如何在模板标记中实现markdown2?获取TemplateSyntaxError 'md2‘不是注册的标记库
EN

Stack Overflow用户
提问于 2020-09-07 13:36:09
回答 2查看 199关注 0票数 0

我按照本源的指令让markdown2在模板标记中工作。代码在下面。

settings.py

代码语言:javascript
复制
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'wikiencyc',
    'markdown2',
]

注意:我尝试使用上面最初建议的'django_markdown2',但是Django服务器不会启动并给出由以下错误引发的一系列异常:

代码语言:javascript
复制
'<frozen importlib._bootstrap>'
from line 200 in Python38-32/lib/pathlib.py

使用'markdown2'而不是'django_markdown2',服务器启动。

entry_detail.html

代码语言:javascript
复制
{% load md2 %}
<h4>{{ entry.subject }} </h4>
<br><br>
<p>
    {{ entry.content|markdown:"safe" }}
</p>

所以,我试着按照书做每一件事。我还确保了markdown2.py在前进的道路上。

我不知道他们把django_markdown2放在PYTHONPATH中是什么意思。在我的系统中不存在这样的环境变量。我试着创建said env变量并将django_markdown2的值放入其中,但仍然没有joy。

我使用Windows 7作为操作系统,Python版本3.8和Django版本3.0.8。下面是pip freeze的输出

代码语言:javascript
复制
asgiref==3.2.10
cachelib==0.1.1
click==7.1.2
Django==3.0.8
Flask==1.1.2
Flask-Session==0.3.2
itsdangerous==1.1.0
Jinja2==2.11.2
markdown2==2.3.9
MarkupSafe==1.1.1
Pillow==7.2.0
psycopg2-binary==2.8.5
pytz==2020.1
SQLAlchemy==1.3.18
sqlparse==0.3.1
Werkzeug==1.0.1

我得到以下错误。

代码语言:javascript
复制
TemplateSyntaxError at /wikiencyc/entry/9
'md2' is not a registered tag library. Must be one of:
admin_list
admin_modify
admin_urls
cache
i18n
l10n
log
static
tz

我做错了什么?请提供具体内容:要编辑的文件、要使用或导入的库、要键入的内容、确切的语法和位置。魔鬼就在细节里。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-09-07 14:42:51

我认为您并没有实际安装django-markdown2:它不会出现在您的pip freeze输出中。听起来您似乎已经尝试手动下载文件并修改您的PYTHONPATH,但是不应该需要这样做。

我希望您正在显式地定义您的依赖项,在这种情况下,您可以将django-markdown2添加到您的requirements.txt中并运行pip install -r requirements.txt。如果没有,请考虑开始这种做法。

如果您只想在当前环境中安装django-markdown2,请运行

代码语言:javascript
复制
pip install django-markdown2

忘记手动下载任何东西或修改PYTHONPATH

希望这是在虚拟环境中实现的。

然后,安装好库后,将settings.py更改为将django_markdown2包含在INSTALLED_APPS中而不是markdown2中。

票数 1
EN

Stack Overflow用户

发布于 2020-09-07 13:42:57

我想应该是

代码语言:javascript
复制
'django_markdown2',

而不是

代码语言:javascript
复制
'markdown2',

在settings.py中

将它添加到路径中是一样的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63778675

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档