我正在为游戏开发者创建一个Django网站来共享代码,这意味着我需要能够将格式正确的代码保存到数据库中,以及能够检索和显示它。
Django是否内置了此功能,还是需要使用第三方库?
我玩了一个Django pagedown widget,它是以StackOverflow的降价编辑器为模型的,但是我遇到了一些麻烦,如果那将是我想要的一切,我不是肯定的本身。
有没有人真正使用过页面窗口小部件,实现了与此类似的功能,或者知道另一个可以工作的库?
答案 0 :(得分:3)
要存储代码,您可以使用任何支持文本类型的数据库。也就是说,您可以在模型中使用TextField。
现在您需要决定如何显示/格式化原始文本。
这取决于您显示格式正确的代码的含义,但我会继续,只是说您应该查看Pygments。它是一个语法高亮库,可以很容易地与Django一起使用。
Pygments通过指定词法分析器(读取:语言)来实现,以便将样式应用于目标文本。空白将由您的数据库保留。其他与格式相关的东西纯粹是主观的。您可能会在视图中指定固定宽度字体,大小等,并将其传递给上下文,就像任何其他由DB支持的对象一样。
Django Rest Framework's tutorial实际上与你所描述的内容非常相似并且使用了Pygments,因此我建议您查看具体的用法示例。
为了专门格式化代码,我会避免任何降价风格,例如你列出的代码,因为代码可能包含在markdown中具有特殊含义的字符,因此你需要转义文本,这就失去了markdown的目的。 / p>