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

标签 python django markdown pagedown

我正在创建一个 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/

相关文章:

python - 为什么 np.corrcoef(x) 和 df.corr() 给出不同的结果?

python - 将 10 位无符号整数转换为 python 中的有符号整数

python - 如何在 Django 模板中使用过滤器或获取方法?

python - 如何让 PyPy、Django 和 PostgreSQL 协同工作?

django - Django关系

image - 从 markdown 到 docx 的 pandoc 转换的图形大小

python - 从 pip 转移到诗歌,现在 pytest-cov 不会收集覆盖率数据

python - 根据系统资源使用情况监视和终止 Python 脚本

python - python-markdown 在不受信任的输入上安全吗?

markdown - 在markdown中插入图片乱码latex背景图片