2017-01-08 66 views
0

在我的主python文件中,我有以下代碼。Python的設置值未定義爲JS

@app.route('/accounts/test/learn/medium') 
def medium(): 
word = random.choice(os.listdir("characters/")) 
return render_template('accounts/test/medium.html', word=word) 

我的HTML模板「中」有一個名爲「字符」的div,其中包含單詞。

<div id="character" style="font-weight:bold;color:red" >{{ word }}</div> 

我的JavaScript文件,我稱之爲身體的onLoad試圖設置的單詞/字符的PNG文件。

currentWord = document.getElementById("character").value 
if(document.getElementById("characterPNG")!=null){ 
    document.getElementById("characterPNG").src = "../../../style/images/characters/png/" +currentWord+ ".png"; 

當我運行應用程序,巨蟒將在我的HTML的話,我可以看到的是, 但JavaScript的,不能看人品的價值。它不如說的

無法加載資源:服務器與http://path/狀態undefined.png

回答你有什麼建議可能是什麼問題?這是序列嗎?

+1

的JavaScript是在客戶端的瀏覽器中運行;你不能使用圖像的相對路徑。您應該使用flask來提供帶有'url_for'的圖片網址。 – jonrsharpe

+0

我認爲主要問題是DIV元素沒有價值。他想要閱讀HTML內容('innerHTML'屬性) – BloodyD

回答

0

正如在評論中指出,我會好好利用url_for從燒瓶生成靜態文件的URL,如下所示:

Flask的文檔引用:

靜態文件

動態Web應用程序還需要靜態文件。這通常是CSS和JavaScript文件來自 的地方。理想情況下,您的web服務器 已配置爲爲您提供服務,但在開發期間,Flask可以使用 。 只需在您的封裝中創建一個名爲static的文件夾,或者在您的模塊旁邊創建一個文件夾 ,該文件夾將在 應用程序的/ static上可用。

所以,你創建一個靜態的文件夾後,只需用url_for方法指出以及文件名引用它在你的模板:

<img id="characterPNG" src={{url_for('static', filename=word+'.png')}}></img> 
+0

我完全同意你的意見,但問題是關於未定義的價值 – BloodyD