2017-01-10 8 views
2

私は約2ヶ月から私のDjango websiteを開発しています。私は自分自身の機能で良いグローバル結果を得るようになります。 しかし、今私は(私の心に)非常に難しい部分を開始する必要があり、私はいくつかのアドバイス、アイデアが必要です。DjangoのウェブサイトからLogicalDOCにPDFファイルを送信

私のDjango Webサイトでは、Django変数を使用してHTMLテンプレートからPDFファイルを作成しています。これまでは、PDFファイルをデスクトップ(特定のフォルダ内)に直接保存していますが、完全に保護されていません。 このアプリケーションに直接PD​​Fファイルを保存するLogicalDocという別のWebアプリケーションをインストールしました。 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

  • 2つの可能性:フォルダが存在する場合、私は新しいフォルダを作成しません。

  • することは、それが行うのならば、私は

が、私はこのプロセスについていくつかの質問を持っていることを行うために、フォルダ名を指定してPDFの名前を比較することにより、フォルダ内のPDFファイルを直接送信します

  • まず、このようなものを作ることは可能ですか?

  • これは難しいですか?

  • どのようなアドバイスをいただけますか?

ありがとうございました!

PS:あなたは私のスクリプトの一部が必要な場合は、主にPDF作成の部分は、私はちょうど私の質問の後にそれを投稿することができます。しかし、それは常にいくつかの練習が必要ですが、アイデアは非常に単純です)

+0

デフォルト形式でpdfsを保存しますか?いい考えではない。 PDFコンテンツを 'bz2スタイル(html-safe)'テキストとして保存します。最善の質問は、古い出力を検索または呼び出す方法です。私は(uploded_csv> matplot> PDF>(html_OUT | SQL_BZ2(BASE64))このpdfを短期間に作成できますか?PDFファイルとして保存せず、 'variables'を保存してください!' pdf'や 'variable '。 – dsgdfg

+0

私の方法で動作します。私はDjangoでコーディングしています^^私の質問はありませんが、他のアプリケーションで直接生成されたファイルをどのように送ることができますか? – Deadpool

+1

? あなたが探しているのはそれですか? http://docs.logicaldoc.com/resources/wsdoc/res/index.html?version=7.5.1#!/document/create 最初の作業ファイル転送の例が得られます。 –

答えて

2

。 REST APIを使用してSOAPについて忘れることができるのは、痛みです:

document/create次の情報を確認します。

  1. エンドポイントと通信する必要があります。 [プロトコル]:// [サーバー]:[ポート] /文書/使用する
  2. HTTPメソッドを作成する - POST
  3. あなたの要求を提供するためのパラメータのリスト:文書コンテンツさらに

、あなたは「それを試してみてください」ボタンをクリックすることで、APIをテストします(オープン開発ツール場合)は、ブラウザの「ネットワーク」タブでリクエストを確認することができます

私はどのようなメタデータを 'ドキュメント'パラメータで提供しなければならないのかよく分かりませんが、テストしてXMLやJSONデータを 'ドキュメント'パラメータに入れることで、何をすべきかを簡単に知ることができます。

内容は、サーバーに転送されるバイトの配列です(ファイルになります)。 、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やセロリで練習をするのは良い考えです。そのような種類の問題を念頭に置いてください。

関連する問題