【问题标题】:How can I send data from one Django application to another?如何将数据从一个 Django 应用程序发送到另一个应用程序?
【发布时间】:2012-08-22 12:10:25
【问题描述】:

这是我的问题。我需要将一个表单从一个 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()

但我失去了换行符。

【问题讨论】:

  • 192.168.56.2:8000 是托管网页的机器还是您尝试将数据发送到的服务器?
  • 您可以将数据从 HTML 直接发送到第二个应用程序吗? action="http://192.168.56.2:8000/api/comp/"
  • yes 192.168.56.2:8000 是我试图发送数据的地方,但它被视为静态 IP,所以我使用 urllib2.urlopen(url) 在视图中发送数据。 py文件

标签: python html django


【解决方案1】:

我认为您可以通过更好的方式发送数据,例如使用 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)

【讨论】:

  • 感谢您的快速解答。当我直接从 html 发送它时,我遇到了静态 url 问题。
  • 我想最好的办法是对数据进行编码,但我怎么能不写 \n 我自己呢?因为数据是由客户端写入文本区域的。
  • 你不需要自己添加\n,如果用户在他的输入中按下&lt;Enter&gt;,那么一切都会好起来的,你之前失去了换行符,因为你没有编码数据。
猜你喜欢
  • 2014-11-01
  • 1970-01-01
  • 2017-01-30
  • 1970-01-01
  • 2020-06-29
  • 1970-01-01
  • 2016-02-03
  • 1970-01-01
  • 2023-03-26
相关资源
最近更新 更多