Python Django-Markdownx故障

Python Django-Markdownx故障,python,django,markdown,django-markdownx,Python,Django,Markdown,Django Markdownx,我在Django应用程序中遇到降价问题。我正在写一篇来自教程的博客,希望在我的文章中降价。我安装了Django,它几乎可以工作 当涉及到代码块时,我会遇到问题。标记在管理页面中的外观与在呈现html页面时的外观不同。我希望我的代码块像在stackoverflow和github上一样出现。相反,当我使用三个```进行代码块格式化时,会得到红色文本 以下是我正在询问的应用程序的文件: project/url.py 来自django.contrib导入管理 从django.url导入路径,包括 从d

我在Django应用程序中遇到降价问题。我正在写一篇来自教程的博客,希望在我的文章中降价。我安装了Django,它几乎可以工作

当涉及到代码块时,我会遇到问题。标记在管理页面中的外观与在呈现html页面时的外观不同。我希望我的代码块像在stackoverflow和github上一样出现。相反,当我使用三个```进行代码块格式化时,会得到红色文本

以下是我正在询问的应用程序的文件:


project/url.py

来自django.contrib导入管理
从django.url导入路径,包括
从django.conf.url.static导入静态
从django.conf导入设置
URL模式=[
路径('admin/',admin.site.url),
路径('projects/',include('projects.url')),
路径('blog/',包括('blog.url'),
路径('markdownx/',include('markdownx.url'),
]
urlpatterns+=静态(settings.static\u URL,document\u root=settings.static\u root)

project/settings.py

。。。
已安装的应用程序=[
“django.contrib.admin”,
“django.contrib.auth”,
“django.contrib.contenttypes”,
“django.contrib.sessions”,
“django.contrib.messages”,
“django.contrib.staticfiles”,
“项目”,
“博客”,
“markdownx”,
]
...

app/models.py

来自django.db导入模型的

从markdownx.models导入MarkdownxField
从markdownx.utils导入markdownify
类项目(models.Model):
title=models.CharField(最大长度=100)
short_description=models.TextField()
long_description=MarkdownxField()
项目链接=models.URLField(最大长度=250)
def格式化_标记(自):
返回markdownify(self.long\u描述)

app/admin.py

来自django.contrib导入管理
从projects.models导入项目
从markdownx.admin导入MarkdownxModelAdmin
类ProjectsAdmin(admin.ModelAdmin):
通过
admin.site.register(项目,MarkdownxModelAdmin)

app/views.py

从django.exe导入渲染
从projects.models导入项目
def项目索引(请求):
projects=projects.objects.all()
上下文={
“项目”:项目
}
返回呈现(请求'project_index.html',上下文)
def项目详细信息(请求、主键):
project=Projects.objects.get(pk=pk)
上下文={
“项目”:项目
}
返回渲染(请求'project_detail.html',上下文)

app/templates/project\u detail.html

{%extends“base.html”%}
{%load static%}
{%block page_content%}
{{project.title}
关于该项目:
{{project.formatted|u markdown | safe | linebreaks}}


项目链接 {%endblock%}
第一个图像是管理页面视图。


第二个图像是模板html页面视图。

您需要启用正确的标记扩展,并可能提供一些CSS

提醒一下,隔离代码块(使用三个反勾号消除的块)是一种非标准功能。根据文档,Markdownx使用Python标记来解析标记文本,Python标记在默认情况下仅支持标准标记特性(如定义的)。因此,您需要启用扩展来正确解析受保护的代码块

如果希望突出显示代码块,还需要启用扩展。您还需要安装
codehilite
使用的
pygments
软件包。您还需要提供CSS来定义高亮显示代码的样式(颜色)。GitHub用户richeland提供了许多不同的主题预览,可以使用Pygments

根据文档,Markdownx有一个启用扩展的设置。因此,您可能需要将以下内容添加到
settings.py
文件中:

MARKDOWNX\u MARKDOWN\u扩展=['fenced\u code','codehilite']
要安装pygments,请运行以下命令:

pip install pygments

然后,在选择您喜欢的突出显示主题后,将适当的CSS复制到您的文件中,并在模板中包含指向该主题的链接。

感谢您的回答,它确实有帮助!尽管如此,它仍然不起作用。我进一步查看了文档,似乎有些文档站点处于脱机状态。我设法发现,
MARKDOWNX\u MARKDOWN\u EXTENSIONS=['MARKDOWN.EXTENSIONS.codehilite']
看起来是这样的。不过,这仍然不起作用。我安装了pygments,但不确定css文件放在哪里,所以我将它们放在我的静态目录中。我将进一步研究这个问题,尝试不同的方法。你指引了我前进的方向,我很感激!您是否在页面模板中添加了指向CSS文件的链接?如果您不链接CSS,它将不会做任何事情。请注意,
markdown.extensions.codehilite
是一种较旧的、不推荐使用的启用扩展的方法。使用新版本的Markdown
codehilite
会很好。这有点尴尬,但我不知道我是否正确添加了CSS文件。下面是我如何从您给我的链接中导入所选css文件的:
。这一行在我的应用程序模板中,这是我在帖子中展示的内容。我的项目根目录中还有我的静态目录,其中包含
default.css
样式表。我一直试图在网上寻找可能的解决方案,我看到了大量的旧文档,但没有更新的文档。这对我来说是正确的,但是我已经多年没有使用Django了,所以我不能对
{%static%}
这件事发表评论。为了确保一切正常,启动开发服务器,在浏览器中加载一个页面,并使用浏览器的开发工具