【问题标题】:Insert a variable into url string - Django App将变量插入 url 字符串 - Django App
【发布时间】:2017-12-14 23:13:09
【问题描述】:

我正在开发一个 Django 应用程序,我需要在前端 (javascript) 中定义的 url 字符串中插入一个变量,以从用户的文件夹中获取一个 json 文件:

'{% static "users/ userName /file.json" %}'

我想将userName 作为变量。我需要 jstree 插件的这个 url。我必须显示用户的文件夹树:

 userFolder = '{% static "users/userName/file.json" %}'

 $('#jstree').jstree({
   "core" : {
   "animation" : 0,
   "check_callback" : true,
   "themes" : { "stripes" : true },
   'data' : {
   "url" : userFolder,

      ... more code ...
   }) 

我尝试了不同的语法,但到目前为止没有运气。你知道有什么解决办法吗?

非常感谢您的帮助!

【问题讨论】:

    标签: javascript python django url


    【解决方案1】:

    jsperf comparison中提到了三种可能的字符串连接方法:

    • 连接字符串的

      性能方面的最佳方式显然最容易理解)是使用assignment++=)运算符:

      '{% static "users/' + userName + '/file.json" %}'
      
    • 次优选择至少在较新的浏览器中)与concat() 函数连接:

      concat()方法将一个或多个字符串的文本组合起来,返回一个新的字符串。

      使用此方法的解决方案如下所示:

      ''.concat(['{% static "users/', userName, '/file.json" %}'])
      
    • 第三个选项包括使用join()函数:

      join() 方法将数组(或类似数组的对象)的所有元素连接成一个字符串并返回该字符串。

      使用此方法的字符串格式如下所示:

      ['{% static "users/', userName, '/file.json" %}]'.join()
      

      请注意,这次连接是从字符串数组而不是字符串执行的。

    例如,如果您将userName 应该等于'FooBar',那么输出将是

    '{% static "users/JonDoe/file.json" %}'
    

    【讨论】:

    • 您好,谢谢您的回答。不幸的是,我仍然收到一个错误:SyntaxError:标识符在数字文字之后立即开始。
    • @Sim81 我提到的所有方法在 Python 3 和 Python 2 中都运行良好。也许您应该更具体地描述您的问题?您在什么情况下尝试使用您的字符串?你期待什么输出?尝试更新您的描述。
    • @Sim81 你能用包含的库和代码行更新你的问题吗?我可以自己测试一下。
    • @Lycopersicum 我添加了一些额外的代码。我需要一个 jstree 插件的 url。谢谢!
    • @Sim81 我会在几个小时内尝试改进我的答案,目前由于规则不足,我无法使用 python pip。
    猜你喜欢
    • 2017-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-08
    • 2011-03-22
    相关资源
    最近更新 更多