将PDF文件从Django网站发送到LogicalDOC

时间:2017-01-10 09:14:38

标签: python django rest api

我正在开发我的Django website大约2个月后,我开始用我自己的功能获得良好的全球结果。 但是,现在我必须开始一个非常困难的部分(在我看来),我需要一些建议,之前的想法。

我的Django网站使用Django变量从HTML模板创建一些PDF文件。到目前为止,我将PDF文件直接保存在我的桌面上(在特定文件夹中),但它完全不安全。 因此,我安装了另一个名为LogicalDoc的Web应用程序,以便直接在此应用程序上保存PDF文件。创建PDF文件并将其发送到LogicalDoc。

LogicalDoc拥有2个API:SOAP和REST(http://wiki.logicaldoc.com/rest/#/),我知道Django可以与REST方法进行通信。

我正在阅读Django文档的这一部分,以便了解我如何处理:https://docs.djangoproject.com/en/dev/topics/http/file-uploads/

我制定了一个计划,以便了解我所揭露的内容:

enter image description here

然后,我写了一个制作一些东西的脚本:

  • 创建PDF文件后,我在LogicalDoc中创建一个文件夹,其中包含以下名称:lastname_firstname_birthday

  • 两种可能性:如果文件夹存在,我不创建新文件夹,否则我创建它。

  • 一旦完成,我通过比较PDF名称和文件夹名称直接在文件夹内发送PDF文件

我对此过程有一些疑问:

  • 首先,是否可以制作这类东西?

  • 这样做难吗?

  • 你能给我什么样的建议?

非常感谢你!

PS:如果您需要我的部分脚本,主要是PDF创建部分,我可以在我的问题之后发布它;)

1 个答案:

答案 0 :(得分:2)

一个想法很简单,但它总是需要一些练习。 我强烈建议你使用REST api并忘记SOAP作为它唯一能给你带来的东西 - 痛苦' :)

如果我们检查文档,document/create它会提供下一个信息。

  1. 我们必须与之沟通的终点。 [protocol]:// [server]:[port] / document / create
  2. 要使用的HTTP方法 - POST
  3. 为您的请求提供的参数列表: body 文档内容
  4. 更重要的是,您可以通过点击"试一试"来测试API。按钮和检查请求"网络"浏览器的标签页(如果您打开开发人员工具)

    我不确定您需要在'文档'中提供哪种元数据?参数,但我知道你可以通过测试它并将XML或JSON数据放入文档'中来轻松了解应该做什么。参数。

    内容是传输到服务器的字节数组(将是您的文件)。

    总而言之,请求“记录/创建”#39; uri会很简单

    body = { 'headers': {},'object': {},}
    document = "<note>data</note>"
    content=open('report.xls', 'rb') #r - reading, b - binary
    r = requests.post('http://logicaldoc/document/create', body=body, document=document, content=content)
    

    请记住,文件传输请求需要时间,有时您可能会遇到超时异常。您的代码将停止并等待响应,因此使用asyncio或celery进行一些练习可能是个好主意。请记住那些可能的问题。