2012-08-22 54 views
0

这是我的问题。我需要将表单从一个Django应用程序发送到另一个(在不同的机器上)。考虑换行符,这是我如何发布我的数据。如何将数据从一个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"></input> 
    <input id="thebutton" type="button" value="Submit" onclick="document.forms.codeid.submit();" /> 
</form> 

形式的行动,即action="192.168.56.2:8000/api/comp/由url.py处理:

urlpatterns = patterns('', 
    (r'^time/$', current_datetime), 
    (r'^time/192.168.56.2:8000/api/comp/$', comp2), 
) 
urlpatterns += staticfiles_urlpatterns() 

在views.py我不知道到底该怎么写的形式发送给其他应用程序。我尝试从表单中提取数据并将其与URL一起发送,如下所示:

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

但我失去了换行符。

+0

是'192.168.56.2:8000'托管网页或您正试图将数据发送到服务器的机器? – themanatuf

+1

您能否将数据从HTML直接发送到第二个应用程序? 'action =“http://192.168.56.2:8000/api/comp/” – inoks

+0

是192.168.56.2:8000是我试图发送数据,但它被看作是一个静态IP,所以我使用urllib2 .urlopen(url)发送views.py文件中的数据 – user1538196

回答

0

我认为你可以用更好的方式通过使用HTML表单将数据直接发送到目标服务器发送数据,例如,等

反正你的方法将数据与URL中urllib2.urlopen线组合是非常糟糕,当然你会失去换行符和许多其他角色。将它添加到URL,这样之前,您应该编码您的数据:

encoded_data = urllib.urlencode({'content': 'Hello,\nIt is a sample content!'}) 
url = urllib2.urlopen('http://192.168.56.2:8000/api/comp/?' + encoded_data) 
+0

谢谢你的快速解答。当我直接从html发送它我面临的静态url问题。 – user1538196

+0

我想要做的更好的事情是编码数据,但我怎么能做到这一点,而不写\ n我的自我?数据由客户端写在textarea上。 – user1538196

+0

如果用户在自己的输入中按下了'',则不需要自己添加'\ n',那么一切都会正常,因为您没有对数据进行编码,所以之前就失去了换行符。 – MostafaR

相关问题