常见问题:使用 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 数据库层耦合。
如何使用图像和文件字段?
在模型中使用 FileField 或 ImageField 需要几个步骤:
- 在您的设置文件中,您需要将 :setting:`MEDIA_ROOT` 定义为您希望 Django 存储上传文件的目录的完整路径。 (为了性能,这些文件不存储在数据库中。)将 :setting:`MEDIA_URL` 定义为该目录的基本公共 URL。 确保该目录可由 Web 服务器的用户帐户写入。
- 将 FileField 或 ImageField 添加到您的模型中,定义 upload_to 选项以指定要使用的 :setting:`MEDIA_ROOT` 的子目录对于上传的文件。
- 所有将存储在您的数据库中的是文件的路径(相对于 :setting:`MEDIA_ROOT`)。 您很可能希望使用 Django 提供的便利 url 属性。 例如,如果您的 ImageField 被称为
mug_shot
,您可以使用模板:Object.mug shot.url
在模板中获取图像的绝对路径。
如何使变量可用于所有模板?
有时您的模板都需要相同的东西。 一个常见的例子是动态生成的菜单。 乍一看,在模板上下文中添加一个通用字典似乎是合乎逻辑的。
在 Django 中执行此操作的最佳方法是使用 RequestContext
。 有关如何执行此操作的详细信息,请参见:Using RequestContext。