我正在开发我的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/
我制定了一个计划,以便了解我所揭露的内容:
然后,我写了一个制作一些东西的脚本:
创建PDF文件后,我在LogicalDoc中创建一个文件夹,其中包含以下名称:lastname_firstname_birthday
两种可能性:如果文件夹存在,我不创建新文件夹,否则我创建它。
一旦完成,我通过比较PDF名称和文件夹名称直接在文件夹内发送PDF文件
我对此过程有一些疑问:
首先,是否可以制作这类东西?
这样做难吗?
你能给我什么样的建议?
非常感谢你!
PS:如果您需要我的部分脚本,主要是PDF创建部分,我可以在我的问题之后发布它;)
答案 0 :(得分:2)
一个想法很简单,但它总是需要一些练习。 我强烈建议你使用REST api并忘记SOAP作为它唯一能给你带来的东西 - 痛苦' :)
如果我们检查文档,document/create它会提供下一个信息。
更重要的是,您可以通过点击"试一试"来测试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进行一些练习可能是个好主意。请记住那些可能的问题。