在 Django 应用程序中使用 JavaScript 加载文件
Posted
技术标签:
【中文标题】在 Django 应用程序中使用 JavaScript 加载文件【英文标题】:Loading file with JavaScript inside a Django app 【发布时间】:2014-07-07 08:47:09 【问题描述】:我在我的 Django 应用程序中使用 javascript(jQuery FileTree,请参见此处:http://www.abeautifulsite.net/blog/2008/03/jquery-file-tree/)。问题是,这个 JavaScript 需要 python 脚本的路径。我怎么能意识到这一点? 我不能在 JavaScript 中使用 Django 模板标签。
在我的 html 模板中,我有:
% load staticfiles %
<script src=% static "treeview.js" % type="text/javascript"></script>
这是 JavaScript treeview.js
(已正确加载):
$(document).ready(function()
$('#file_selector').fileTree(
root: '/',
// how to load this file?
script: 'path/to/python/script.py',
folderEvent: 'click', expandSpeed: 750, collapseSpeed: 750,
expandEasing: 'easeOutBounce',
collapseEasing: 'easeOutBounce', loadMessage: 'Laden...',
multiFolder: false,
function(file) alert(file);
);
);
Django 找不到脚本path/to/python/script.py
,我该如何提供这个文件?可能我还没有完全理解Django中静态文件的概念?请注意,脚本不必是 python,我想知道如何在我的 JavaScript 中加载任意文件。
【问题讨论】:
我要么通过urls.py
路由文件,要么向后端的查找函数发送一个ajax 请求,该函数将回答相关文件。
【参考方案1】:
您误解了“脚本”参数是什么。它不是脚本的文件路径,而是 URL:返回 JSON 以填充树视图的服务器端代码的位置。您需要编写一个视图并将其与您的 urlconf 连接,然后在 JS 选项中使用该 URL。
请注意,该软件包显然已经包含了 Django 的连接器。此外,您可能想反映,文件浏览器可能比未维护的六年前的软件包更好。
【讨论】:
以上是关于在 Django 应用程序中使用 JavaScript 加载文件的主要内容,如果未能解决你的问题,请参考以下文章
带有 AJAX 的 Django login_required 装饰器
没有 jquery 的 Django CSRF 丢失或不正确的 Ajax POST (Vanilla JavaScript)