常见问题:使用 Django — Django 文档

来自菜鸟教程
Django/docs/3.0.x/faq/usage
跳转至:导航、​搜索

常见问题:使用 Django

为什么在导入 DJANGO_SETTINGS_MODULE 时出现错误?

确保:

  • 环境变量 DJANGO_SETTINGS_MODULE 设置为完全限定的 Python 模块(即 “mysite.settings”)。
  • 所述模块在 sys.path 上(import mysite.settings 应该可以工作)。
  • 该模块不包含语法错误(当然)。


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

我们碰巧认为我们的模板引擎是自大块培根以来最好的东西,但我们认识到选择模板语言与宗教接近。 Django 不需要使用模板语言,所以如果你喜欢 Jinja2、Mako 或其他任何东西,请随意使用它们。


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

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

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


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

在模型中使用 FileFieldImageField 需要几个步骤:

  1. 在您的设置文件中,您需要将 :setting:`MEDIA_ROOT` 定义为您希望 Django 存储上传文件的目录的完整路径。 (为了性能,这些文件不存储在数据库中。)将 :setting:`MEDIA_URL` 定义为该目录的基本公共 URL。 确保该目录可由 Web 服务器的用户帐户写入。
  2. FileFieldImageField 添加到您的模型中,定义 upload_to 选项以指定要使用的 :setting:`MEDIA_ROOT` 的子目录对于上传的文件。
  3. 所有将存储在您的数据库中的是文件的路径(相对于 :setting:`MEDIA_ROOT`)。 您很可能希望使用 Django 提供的便利 url 属性。 例如,如果您的 ImageField 被称为 mug_shot,您可以使用 模板:Object.mug shot.url 在模板中获取图像的绝对路径。


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

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

在 Django 中执行此操作的最佳方法是使用 RequestContext。 有关如何执行此操作的详细信息,请参见:Using RequestContext