欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Django模板變量如何傳遞給外部js調(diào)用的方法小結(jié)

 更新時(shí)間:2017年07月24日 09:26:48   作者:Roy  
這篇文章主要給大家介紹了關(guān)于Django模板變量如何傳遞給外部js調(diào)用的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面跟著小編一起來(lái)學(xué)習(xí)學(xué)習(xí)吧。

前言

因?yàn)楣ぷ鞯男枰?,最近一直在思考如何更好的組織Django中的靜態(tài)資源,比如JS、CSS一類,如何結(jié)合前端構(gòu)建工具寫出更好的代碼以及結(jié)構(gòu)呢?下面這篇文章就給大家詳細(xì)介紹了實(shí)現(xiàn)的方法,話不多說(shuō),來(lái)一起看看詳細(xì)的介紹:

方法如下:

首先需要解決的一個(gè)問(wèn)題就是某些時(shí)候需要把JS代碼寫在模板里來(lái)獲取后臺(tái)傳遞過(guò)來(lái)的變量,比如:

<div>
<h1>Test</h1>
<div id="my-test" ></div>
</div>
<script>
$(function(){
 $('#my-test').html("{{ some_var_from_view }}")
});
</script>

這么寫代碼的話,別扭不說(shuō),前端的那些構(gòu)建工具比如webpack,gulp的使用范圍也將大大降低。

首先說(shuō)結(jié)論,想完全剝離JS和模板而又需要使用模板渲染的數(shù)據(jù),我是沒想到什么好辦法。如果讀者有好辦法希望賜教。
既然不能完全剝離,那么就進(jìn)最大的努力分離JS所需的數(shù)據(jù)和代碼吧。

既然需要模板渲染數(shù)據(jù)給JS使用,最先想到的辦法就是把數(shù)據(jù)渲染到HTML代碼中并隱藏。這種方法的優(yōu)點(diǎn)就在于簡(jiǎn)單,甚至模板中都可以完全不使用<script></script>標(biāo)簽。缺點(diǎn)則是會(huì)渲染出很多的隱藏字段,JS中要寫大量的getElementsByxxxx一類的代碼來(lái)獲取數(shù)據(jù)。

既然如此,那么使用一種折中的辦法,在HTML中使用<script></script>標(biāo)簽將后臺(tái)傳遞的數(shù)據(jù)渲染成JS對(duì)象,然后JS代碼中則可以直接使用這個(gè)對(duì)象了。

比如模板中:

<script>
var MyViewVar = {
 var_1: {{ var_1 }},
 var_2: {{ var_2 }},
};
</script>
...
<script type="text/javascript" src="/js/test_script.js"></script>

使用這種方式需要注意一點(diǎn)就是盡量先寫渲染JS變量的代碼,比如寫在head中,然后再引入外部JS文件。這樣,在test_script.js中就可以直接使用MyViewVar這個(gè)對(duì)象了。

當(dāng)然了,既然現(xiàn)在流行SPA(Single Page Application)網(wǎng)站,那么django作為后端僅提供JSON數(shù)據(jù)也是一種辦法,不過(guò)這樣比較考驗(yàn)前端人員的能力了。

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

  • Python 帶有參數(shù)的裝飾器實(shí)例代碼詳解

    Python 帶有參數(shù)的裝飾器實(shí)例代碼詳解

    這篇文章主要介紹了Python 裝飾器,帶有參數(shù)的裝飾器實(shí)例代碼詳解,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-12-12
  • python獲取當(dāng)前git的repo地址的示例代碼

    python獲取當(dāng)前git的repo地址的示例代碼

    大家好,當(dāng)談及版本控制系統(tǒng)時(shí),Git是最為廣泛使用的一種,而Python作為一門多用途的編程語(yǔ)言,在處理Git倉(cāng)庫(kù)時(shí)也展現(xiàn)了其強(qiáng)大的能力,本文給大家介紹了python獲取當(dāng)前git的repo地址的方法,需要的朋友可以參考下
    2024-09-09
  • Python進(jìn)階教程之創(chuàng)建本地PyPI倉(cāng)庫(kù)

    Python進(jìn)階教程之創(chuàng)建本地PyPI倉(cāng)庫(kù)

    pypi是一個(gè)python包的倉(cāng)庫(kù),里面有很多別人寫好的python庫(kù),你可以通過(guò)easy_install或者pip進(jìn)行安裝,下面這篇文章主要給大家介紹了關(guān)于Python進(jìn)階教程之創(chuàng)建本地PyPI倉(cāng)庫(kù)的相關(guān)資料,需要的朋友可以參考下
    2021-10-10
  • Python+PyQt5制作一個(gè)圖片查看器

    Python+PyQt5制作一個(gè)圖片查看器

    在PyQt中可以使用很多方式實(shí)現(xiàn)照片查看器,本文將利用QGraphicsView類來(lái)實(shí)現(xiàn)圖片查看器的制作,感興趣的小伙伴快跟隨小編一起動(dòng)手試一試
    2022-03-03
  • 教你用Python腳本快速為iOS10生成圖標(biāo)和截屏

    教你用Python腳本快速為iOS10生成圖標(biāo)和截屏

    這篇文章主要介紹了教你用Python快速為iOS10生成圖標(biāo)和截屏的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-09-09
  • 淺談dataframe中更改列屬性的方法

    淺談dataframe中更改列屬性的方法

    今天小編就為大家分享一篇淺談dataframe中更改列屬性的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-07-07
  • 用Python實(shí)現(xiàn)將一張圖片分成9宮格的示例

    用Python實(shí)現(xiàn)將一張圖片分成9宮格的示例

    今天小編就為大家分享一篇用Python實(shí)現(xiàn)將一張圖片分成9宮格的示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-07-07
  • python中的腳本性能分析

    python中的腳本性能分析

    這篇文章主要介紹了python中的腳本性能分析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • 解決python父線程關(guān)閉后子線程不關(guān)閉問(wèn)題

    解決python父線程關(guān)閉后子線程不關(guān)閉問(wèn)題

    這篇文章主要介紹了解決python父線程關(guān)閉后子線程不關(guān)閉問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-04-04
  • 使用Python如何測(cè)試InnoDB與MyISAM的讀寫性能

    使用Python如何測(cè)試InnoDB與MyISAM的讀寫性能

    網(wǎng)上有很多評(píng)論myisam和innodb讀寫性能對(duì)比,所以下面這篇文章主要給大家介紹了關(guān)于使用Python如何測(cè)試InnoDB與MyISAM讀寫性能的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2018-09-09

最新評(píng)論