如何将代码片段保存到数据库?

How do I save code snippets to a database?

我正在为游戏开发者创建一个 Django 网站来共享代码,这意味着我需要能够将格式正确的代码保存到数据库中,并且能够检索和显示它。

Django 是否为此内置了任何东西,或者我是否需要使用第三方库?

我玩过 Django pagedown widget,它是仿照 Whosebug 的 markdown 编辑器建模的,但我在使用它时遇到了一些麻烦,我不确定它是否能完成我想要的一切自己想要。

有没有人实际使用过 pagedown 小部件,实现了与此类似的功能,或者知道另一个可用的库?

为了存储代码,您可以使用任何支持文本类型的数据库。也就是说,您将在模型中使用 TextField

现在您需要决定原始文本的格式 displayed/formatted。

这取决于您所说的显示格式正确的代码的含义,但我要继续,只是说您应该查看 Pygments。它是一个语法高亮库,可以轻松使用w/Django.

Pygments 的工作方式是指定一个词法分析器(阅读:语言),以便将样式应用于目标文本。空格将由您的数据库保留。其他一切 formatting-related 纯属主观。您可能会在视图中指定固定宽度的字体、大小等,然后像传递任何其他 DB-backed 对象一样将其传递给上下文。

Django Rest Framework's tutorial 实际上制作的东西与您所描述的非常相似并使用 Pygments,因此我建议您查看具体的使用示例。

对于排版代码,我会避免任何像你列出的那样的 markdown 风格,因为代码可能包含在 markdown 中具有特殊含义的字符,因此你需要对文本进行转义,这违背了 markdown 的目的.