我正在创建一个 Django 网站,供游戏开发人员共享代码,这意味着我需要能够将格式正确的代码保存到数据库,并且能够检索和显示它。
Django 中是否有为此内置的任何东西,或者我需要使用第三方库吗?
我玩过 Django pagedown widget ,它是根据 StackOverflow 的 markdown 编辑器建模的,但我在使用它时遇到了一些麻烦,而且我不确定它是否能单独完成我想要的一切。
是否有人实际使用过 pagedown 小部件,实现了与此类似的功能,或者知道另一个可以使用的库?
最佳答案
为了存储代码,您可以使用任何支持文本类型的数据库。也就是说,您将使用 TextField在你的模型中。
现在您需要决定如何显示/格式化原始文本。
这取决于您显示格式正确的代码的含义,但我要继续说您应该查看 Pygments 。它是一个语法突出显示库,可以轻松地与 Django 一起使用。
Pygments 的工作原理是指定一个词法分析器(即:语言),以便将样式应用于目标文本。空格将由您的数据库保留。其他与格式相关的内容纯粹是主观的。您可能会在 View 中指定固定宽度的字体、大小等,并将其传递到上下文,就像任何其他数据库支持的对象一样。
Django Rest Framework's tutorial实际上制作的东西与您所描述的非常相似并使用 Pygments,因此我建议您查看具体的使用示例。
对于专门格式化代码,我会避免像您列出的那样的任何 Markdown 风格,因为代码可能包含在 Markdown 中具有特殊含义的字符,因此您需要转义文本,这违背了 Markdown 的目的。
关于python - 如何将代码片段保存到数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34971960/