【问题标题】:Django Post to External ServerDjango 发布到外部服务器
【发布时间】:2014-05-22 19:07:10
【问题描述】:

我对 Django/Python 比较陌生。我目前正在开发一个 Django 系统来跟踪我们公司开发的建模系统的条目。

客户端应该能够将模型运行数据发布到我们服务器上的数据库中。数据将来自 python 脚本。我能够使用somemodelname.objects.get_or_create 使其在我的系统上运行,但这在外部无法运行。我知道我应该使用 requests 之类的包,发现:How to post a django request to external server。但是,这假设可以从客户端计算机访问 django 代码(视图等)。

我怎样才能完成这项工作,以便将客户端数据从 python 脚本发布到 Django 数据库?

【问题讨论】:

    标签: django python-requests


    【解决方案1】:

    听起来很好地使用了 RESTful API。 Django Rest FrameworkTastypie 都是与 Django 一起使用的好包。

    基本上,使用 API,您可以通过 url 公开您的数据库。您将拥有一个类似:mysitename.com/api/mymodel 的 url,它可以处理不同的 HTTP 方法。如果您使用 POST 动词调用它,您的视图将为您的 mymodel 模型创建一个新记录。因此,当您的客户端计算机在 python 脚本中生成数据时,您将使用 [requests](http://docs.python-requests.org/en/latest/)POST 请求中的数据发送到 url 端点,这将在数据库中创建记录。

    【讨论】:

    • 我已经回到这个项目,但仍然没有工作版本。它正确地将值发布到测试页面表单 ("httpbin.org/post"),但在我运行时为我的页面提供了整个 html 代码:r.contents(其中 r 是请求)。我已经测试了状态代码和它运行正确。有什么建议吗?
    • 其中一个挑战可能是数据库(在 postgresql 中)需要一个“id”字段和带有外键的字段的 id 值。我认为这些可以在服务器端显式输入。
    • 附加信息:我在页面上有一个按钮。在按下按钮之前,网络日志显示请求类型为“GET”。按下按钮后切换到“POST”,表单字段实际出现在日志中。该按钮有一个字段,我试图将其包含在我的请求中,但这也不起作用。
    猜你喜欢
    • 2013-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-12
    • 1970-01-01
    相关资源
    最近更新 更多