在 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 加载文件的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Django 加载模型管理文件中的静态文件?

Day16 Django深入讲解

django学习第十三天

带有 AJAX 的 Django login_required 装饰器

没有 jquery 的 Django CSRF 丢失或不正确的 Ajax POST (Vanilla JavaScript)

JQuery事件与应用