簡體   English   中英

我試圖通過一個大小 <DIV> 回到谷歌應用程序引擎(Python代碼)但似乎無法使其工作

[英]I am trying to pass the size of a <DIV> back to google app engine (Python code) but can't seem to make it work

如果我在這里真的很蠢,很多人道歉 - 我早上大部分時間都在尋找答案,但也許我正在用錯誤的語言搜索。 我正在使用Google App Engine,使用Python代碼來設置我的webapp。 我已設法使用以下HTML代碼設置基本頁面結構:

main_html = """
<HTML>
  <HEAD>
    <LINK rel="stylesheet" type="text/css" href="static/css/main.css">
  </HEAD>
  <BODY>
    <DIV class="wspace">
      <BR>
    </DIV>
    <DIV class="header">
      <FONT class="logoFont">Logo Text</font>
    </DIV>
    <DIV class="maincontainer">
      <DIV class="sidebar" id="leftsidebar">
        <SCRIPT>
          var lsCanWid = document.getElementsByTagName("div"["leftsidebar"].offsetWidth
          var lsCanHei = document.getElementsByTagName("div")["leftsidebar"].offsetHeight
        </SCRIPT> 
      </DIV>
      <DIV class="sidebar" id="rightsidebar">
        <SCRIPT>
          var rsCanWid = document.getElementsByTagName("div")["rightsidebar"].offsetWidth
          var rsCanHei = document.getElementsByTagName("div")["rightsidebar"].offsetHeight
        </SCRIPT>
      </DIV>
      <DIV class="mainscreen" id="mainscr">
        <SCRIPT>
          var mainCanWid = document.getElementsByTagName("div")["mainscr"].offsetWidth
          var mainCanHei = document.getElementsByTagName("div")["mainscr"].offsetHeight
        </SCRIPT>
        %(MAINCONTENT)s
      </DIV>
    </DIV>
    <DIV class="footer">
      Footer Text
    </DIV>
    <DIV class="wspace">
      <FONT class="crnotice">Copyright Notice Text</FONT>
    </DIV>
  </BODY>
</HTML>
"""

我已經測試了javascript變量,這些變量完全按計划工作(例如lsCanWid返回左側邊欄寬度)。

我在Python中得到了以下代碼:

class MainHandler(webapp2.RequestHandler):
    def get(self):
        lsCanWid = self.request.get('lsCanWid')
        lsCanHei = self.request.get('lsCanHei')
        rsCanWid = self.request.get('rsCanWid')
        rsCanHei = self.request.get('rsCanHei')
        mainCanWid = self.request.get('mainCanWid')
        mainCanHei = self.request.get('mainCanHei')
        temp_str = str(lsCanWid)
        self.response.write(main_html %{"MAINCONTENT": temp_str})

app = webapp2.WSGIApplication([
    ('/', MainHandler)
], debug=True)

我以前沒試過在“get”中使用self.request.get,所以我不確定這是不是問題。 如果你用其他字符串替換temp_str,python代碼工作正常,所以這不是我的問題所在。 我真的很感激這里的任何幫助!

簡而言之 - 您不是將這些值發送回處理程序,您需要將它們添加到查詢字符串或將其發回。

Javascript運行瀏覽器。 頁面在瀏覽器中呈現后,與后端代碼無關。 為了使您的Python代碼能夠從瀏覽器中了解任何內容,您必須將其發送回代碼。 這就是HTTP的工作原理。 它是一個“請求/響應”周期,一旦響應(發送給瀏覽器的內容)完成,就沒有連接。

因此,要將這些值發送回代碼,您需要將它們作為查詢字符串的一部分附加到請求中,例如/foo?lsCanWid=3&lsCanHei=4 (依此類推)。 您需要使用javascript構建此URL,然后將其添加到您必須單擊的鏈接 - 然后, 在下一個請求 (單擊此新鏈接)后,您的Python代碼將接收值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM