2013-02-07 62 views
1

由於大多數後端人,我不知道我怎麼能實現以下,因爲它 需要一些與瀏覽器交互。通過JavaScript傳遞參數給python函數

所以,我到目前爲止有以下幾點。

一個通信協議,其中服務器在Python和客戶端是JavaScript代碼。最終,我希望我的數據能夠達到該JavaScript代碼。

現在,這些數據正在從瀏覽器中捕獲。

作爲練習..什麼,我試圖做的是..在瀏覽器上兩個單選按鈕和一個提交按鈕

*radio A 
    *radio B 
    * Submit 

現在,當用戶按下提交,我有點想創建一個查詢「用戶提交:A(或B)」和這個查詢我能夠捕獲python腳本。

我迷失在如何做到這一點。

我的猜測是「提交」調用python腳本。 但是,如果我的python服務器始終處於打開狀態......如何解析從瀏覽器點擊此python服務器的響應?

+0

Java不是JavaScript。你的意思是? – Eric

+1

@Eric:是的..我知道..它與java無關。對不起,我的問題是不清楚的.. [code] javascript - > python - > java [/ code] python - > java是一個簡單的socket ..所以那個協議在那裏.. 我是現在正在處理如何從javascript發送數據 - > python – Fraz

+0

感謝您澄清 – Eric

回答

2

這是通常的工作方式:

  1. 客戶端(瀏覽器)訪問網頁,發起請求到服務器
  2. 服務器(在你的情況,Python)的處理要求,並寫入HTML的響應,包括無線電按鈕形式
  3. 客戶端填寫表單並點擊提交,觸發另一個請求到服務器
  4. 服務器處理第二個請求並寫入另一個響應(例如「購買成功」,「消息發佈」等)。

請注意,第二個請求是一個全新的請求。您可能需要將第一個請求鏈接到第二個請求的方式,除非第二個請求是匿名的。有些框架可以爲你做到這一點,但如果你是從頭開始製作服務器,你需要某種會話機制來跟蹤狀態。

要讓客戶端發出第二個請求,最簡單的方法是在HTML中爲form元素添加相應的actionmethod屬性。 action指定要訪問表單請求的URL,並且methodGETPOST。 (更高級的用法,例如在本網站上,通常使用AJAX來提交提交)。