常见问题解答:使用django

为什么导入时出错 DJANGO_SETTINGS_MODULE 是吗?

确保:

  • 环境变量 DJANGO_SETTINGS_MODULE 设置为完全限定的Python模块(即 mysite.settings )。

  • 所述模块开启 sys.path (import mysite.settings 应该工作)。

  • 模块不包含语法错误。

我受不了你的模板语言。我必须使用它吗?

我们碰巧认为模板引擎是自厚重的培根以来最好的东西,但我们认识到选择模板语言与宗教关系密切。Django没有任何需要使用模板语言的地方,所以如果你和Jinja2、Mako或者其他什么东西有联系,你可以随意使用它们。

我必须使用您的模型/数据库层吗?

不。与模板系统一样,模型/数据库层与框架的其余部分分离。

唯一的例外是:如果您使用不同的数据库库,您将无法使用Django自动生成的管理站点。该应用程序与Django数据库层耦合。

如何使用图像和文件字段?

使用A FileFieldImageField 在一个模型中,需要采取一些步骤:

  1. 在您的设置文件中,您需要定义 MEDIA_ROOT 作为您希望Django存储上传文件的目录的完整路径。(出于性能考虑,这些文件不存储在数据库中。)定义 MEDIA_URL 作为该目录的基本公共URL。确保Web服务器的用户帐户可以写入此目录。

  2. 添加 FileFieldImageField 对于您的模型,定义 upload_to 指定子目录的选项 MEDIA_ROOT 用于上载的文件。

  3. 数据库中存储的所有内容都是指向文件的路径(相对于 MEDIA_ROOT )你很可能想利用方便 url Django提供的属性。例如,如果 ImageField 被称为 mug_shot ,可以获取模板中图像的绝对路径 {{{{ object.mug_shot.url }}}} .

如何使变量可用于所有模板?

有时候你的模板都需要同样的东西。一个常见的例子是动态生成的菜单。乍一看,在模板上下文中添加一个公共字典似乎是合乎逻辑的。

在Django中最好的方法是使用 RequestContext . 有关如何执行此操作的详细信息如下: 使用 RequestContext .