2012-08-23 18 views
2

用戶在一個文本編寫代碼(HTML)我張貼這樣的形式:我怎樣才能保持換行符從一個Django應用程序發送時的數據到另一個

<form id="codeid" method="post" enctype="application/x-www-form-urlencoded" name="code" action="192.168.56.2:8000/api/comp/"> 
    <input id="textarea_1" name="content" cols="80" rows="15" type="text" onkeypress="return runScript(event)"></input> 
    <input id="thebutton" type="button" value="Submit" onclick="document.forms.codeid.submit();" /> 
</form> 

看來,編碼與數據"application/x-www-form-urlencoded"是不夠的,編碼換行符,

這是我怎麼做才能將數據發送到其他應用程序:

def comp(request): 

    data = request.POST['content'] 
    url = urllib2.urlopen('http://192.168.56.2:8000/api/comp/?' + data) 
    redirect('http://192.168.56.2:8000/api/comp/?' + data) 
    tml = url.read() 

    return HttpResponse(encoded_data) 

因此,當用戶鍵入一個爲例Python代碼Ë;

def current_datetime(request): 
    current_date=datetime.datetime.now() 
    return render_to_response('index.html', locals()) 

這是真實收到什麼:

def+current_datetime%28request%29%3A++++current_date%3Ddatetime.datetime.now%28%29++++return+render_to_response%28%27index.html%27%2C+locals%28%29%29 

沒有編碼換行。 我試圖從鍵盤捕獲<enter>事件,並將\n添加到文本區域的值,但它沒有奏效。

謝謝。

+0

如何爲這個問題從[我如何從一個Django應用程序發送數據到另一個?](HTTP不同://計算器.com/q/12072850) –

+0

在這篇文章中這不是一回事,我需要一個JavaScript解決方案或一種方式來編碼行中斷,在你建議它是發送表單的問題,我試圖編碼數據在views.py中,但是它不會改變任何東西,因爲當從html發佈時,數據已經被編碼了。我認爲開始一個新問題會更好 – user1538196

+0

好的,謝謝澄清。 –

回答

0

你可能需要追加到URL之前urllib.urlquote()數據:

>>> import urllib 
>>> urllib.quote('\n') 
'%0A' 
+0

urllib.quote()替換數據中的特殊字符是不是?你的意思是urllib.urlencode()的數據呢? – user1538196

+0

正確,像'\ n'這樣的特殊字符。 – djc

+0

但'\ n'字符不存在,我必須在它從HTML發佈之前添加它 – user1538196

相關問題