如何绕过Django的URL映射并直接指向文件

0 投票
1 回答
966 浏览
提问于 2025-04-16 00:43

我刚开始学习用Python做网页开发。之前我有不少用PHP做动态网站的经验。不过,我在PHP里从来没有用过MVC(模型-视图-控制器)。这次我第一次用MVC(更准确地说是MTV,模型-模板-视图)。我正在跟着一些教程学习。

和PHP的世界不同的是,URL并不是指向文件,而是指向函数。这一点让我在网页开发的体验几乎为零。虽然这对可以从模板生成的HTML内容来说是好的。

但是,对于那些不需要渲染的东西,比如电影、图片、PDF文件、可执行文件(*.exe)、样式表和JavaScript文件,该怎么办呢?比如像这样的代码:

<img src="image.jpg" />
or
<link rel="stylesheet" href="stylesheets/style.css" />
or
<a href="/downloads/huge_executable.exe" />

我也需要为这些写视图吗?如果你说只需要一个像'getNonRenderingContent'这样的视图,它读取文件并用合适的mime类型写入HTTP响应。

我觉得这很傻,而且会给服务器带来不必要的负担。为什么每次下载这些文件时都要运行代码呢?有没有办法直接让URL指向文件,而不是指向视图呢?

1 个回答

2

你可以设置你的HTTP服务器,让它直接提供你的文件。

关于Django中的静态文件,你可以在这里了解更多: http://docs.djangoproject.com/en/dev/howto/static-files/

撰写回答