0

これが私の問題です。ある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>

フォームアクションieaction="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()

しかし、私は改行を失います。

4

1 に答える 1

0

HTMLフォームを使って送信先のサーバーに直接データを送るなど、もっと良い方法でデータを送ることができると思います。

とにかく、urllib2.urlopen行内の URL とデータを混在させるアプローチは非常に悪く、もちろん、改行やその他の多くの文字が失われます。次のように、データを 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)
于 2012-08-22T12:23:11.990 に答える