亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Django模板變量和Javascript

Django模板變量和Javascript

MM們 2019-07-15 10:00:49
Django模板變量和Javascript當我使用Django模板呈現器呈現頁面時,我可以傳入一個包含各種值的字典變量,以便在頁面中使用{{ myVar }}.是否有一種方法可以訪問Javascript中的相同變量(也許使用DOM,我不知道Django如何使變量可以訪問)?我希望能夠根據傳入的變量中包含的值使用Ajax查找來查找詳細信息。
查看完整描述

3 回答

?
心有法竹

TA貢獻1866條經驗 獲得超5個贊

這個{{variable}}直接替換到HTML中。做一個視圖源;它不是一個“變量”或任何類似的東西。只是渲染了文字。

話雖如此,您還是可以將這種替代應用到JavaScript中。

<script type="text/javascript"> 
   var a = "{{someDjangoVariable}}";</script>

這給了您“動態”的javascript。


查看完整回答
反對 回復 2019-07-15
?
慕桂英546537

TA貢獻1848條經驗 獲得超10個贊

支票票#17419有關在Django核心中添加類似標記的討論,以及使用此模板標記與用戶生成的數據一起引入的可能的XSS漏洞。評語從amacneil討論了在票上提出的大部分問題。


我認為最靈活和方便的方法是為您想要在JS代碼中使用的變量定義一個模板過濾器。這允許您確保正確地轉義數據,并且可以將其用于復雜的數據結構,例如dictlist..這就是為什么我寫這個答案,盡管有一個被接受的答案和很多向上。

下面是模板過濾器的一個示例:

// myapp/templatetags/js.pyfrom django.utils.safestring import mark_safefrom django.template import Libraryimport json


register = Library()@register.filter(is_safe=True)def js(obj):
    return mark_safe(json.dumps(obj))

此模板篩選器將變量轉換為JSON字符串。您可以這樣使用它:

// myapp/templates/example.html{% load js %}<script type="text/javascript">
    var someVar = {{ some_var | js }};</script>


查看完整回答
反對 回復 2019-07-15
?
慕標5832272

TA貢獻1966條經驗 獲得超4個贊

一個對我有用的解決方案是在模板中使用隱藏的輸入字段。

<input type="hidden" id="myVar" name="variable" value="{{ variable }}">

然后以這種方式獲取javascript中的值,

var myVar = document.getElementById("myVar").value;


查看完整回答
反對 回復 2019-07-15
  • 3 回答
  • 0 關注
  • 1142 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號