FAQ: 使用Django¶
为什么我在导入 DJANGO_SETTINGS_MODULE
时收到错误提示?¶
保证:
环境变量
DJANGO_SETTINGS_MODULE
设置为完全限定的 Python 模块(即mysite.settings
)。所述模块在
sys.path
(需引入import mysite.settings
才会工作)该模块不包含语法错误。
我不喜欢 Django 的模板语言,能不能不使用它?¶
我们认为我们的的模板引擎是最好的,但是我们意识到选择一个模板语言和信仰宗教相似。Django 没有什么必须的模板语言,如果你愿意使用 Jinja2、Mako 或其他的,请随意使用。
我是否必须使用你的模型/数据库层?¶
不。就像模板系统,模型/数据库层是与框架的其余部分分离的。
唯一例外的是:如果你使用其他的数据库库,你没办法使用 Django 自动生成的后台界面。这个应用是和 Django 数据库层耦合的。
我要怎么使用图片和文件字段?¶
在模型中使用 FileField
或 ImageField
,你还需要完成如下步骤:
在你的配置文件中,你需要将
MEDIA_ROOT
定义为你希望 Django 存储上传文件的目录的完整路径。(为了提高性能,这些文件不会存储在数据库中。)将MEDIA_URL
定义为该目录的基本公共 URL。确保这个目录是可以被网络服务器的用户账户写入的。在你的模型中添加
FileField
或者ImageField
,可以通过定义upload_to
在MEDIA_ROOT
中明确一个子目录用来上传文件。所有将被储存在数据库中的文件路径相同(相对于
MEDIA_ROOT
)。你很想用由 Django 提供的url
,比如, 如果ImageField
被叫做mug_shot
, 你就可以得到{{ object.mug_shot.url }}
图片模板的绝对路径。
我如何让一个变量可用于我的所有模板之中?¶
有时候你的模板会需要相同的东西。一个常见的例子是动态生成的菜单。乍一看,在模板上下文中添加一个通用字典似乎是合乎逻辑的。
最好方法是使用 RequestContext
。关于如何使用它请查看:使用 RequestContext。