2

我已经为我正在处理的 django 项目创建了一个降价扩展文件(称为 mdx_xxx.py),但我真的无法决定将它放在哪里。

文档说该文件应该驻留在 PYTHONPATH 上,我已经看到几篇博客文章邀请您将文件放在项目的根目录中。

但是,这对我来说似乎是一个奇怪的地方,因为我宁愿在相关的应用程序目录中看到它,但它不再在 PYTHONPATH 上。

一些有经验的 django 程序员能否对这个问题有所了解?

谢谢

4

3 回答 3

1

并非所有内容都应该在您的项目中。这是一个要求,一个依赖。你仍然可以将它们打包在一起,我认为你需要把它放在顶层。这基本上意味着可以从与项目本身相同的位置导入。就个人而言,我将所有内容都推送到 virtualenv,因此它既漂亮又干净。如果你这样做,你的部署过程应该包括将你的项目和任何依赖项安全地放入该 virtualenv。否则,到路径中的任何位置。

于 2010-01-24T02:25:53.470 回答
1

要求扩展文件直接存在于 Python 路径上,而不是在任何包中,是 (IMO) Python markdown 实现的不幸限制。

如果您的扩展非常特定于您的项目,我认为将其放在项目根目录中是最好的选择。

另一方面,如果您的扩展在其他情况下可重用,我会使用简单的 setup.py 将其打包并使用 pip 将其安装到 virtualenv 中,就像我处理所有其他依赖项一样。

于 2010-01-24T15:17:38.407 回答
0

如果您现在在 2.3.1 版本中使用来自 pip (pip install markdown) 的标准降价库,则扩展可以在任何地方。你只需要提供它的虚线路径。旧式 - 将其直接放在模块前缀 mdx_ 中的 PYTHONPATH 上仍然可以正常工作。

我在我的应用程序代码中有它:django_file_downloads.mdx_download。

要从 django 模板中使用它:

{% load markup %}
{{ variable|markdown:'django_file_downloads.mdx_download' }}
于 2013-08-19T15:29:10.740 回答