免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
Django中使用python-docx-template實現(xiàn)文檔下載功能

前言

我認為Django編程完全可以作為個人全棧的一個起點。

  • Python語言上手快,這些優(yōu)點就不用說了;

  • Django用戶基數(shù)大,這就意味著你發(fā)現(xiàn)的問題,Stack Overflow上可能已經(jīng)有了完美的解決方案;

  • Django編程功能模塊全,可選擇余地多,可以整合的Python庫更多,這點可以看看awesome-django, awesome-python等項目,一旦發(fā)現(xiàn)那些感興趣的,就可以深入進去不斷研究,發(fā)展自己的技能點。

  • 最重要的一點,很討厭的一點是大公司今天發(fā)布了一個技術(shù),可能過些年就宣布廢棄了,被他們“騙”了多年后,痛定思痛,現(xiàn)在就想學習一個相對壽命能長一些的技術(shù)棧,這些技術(shù)完全可以組合完成絕大部分中小項目的開發(fā),Django&Python完成能符合這個目標。


最后,“Django編程”公眾號會不定期的更新關(guān)于Django編程相關(guān)的知識點,力求涉及全棧,也保證會根據(jù)心情,隨機亂入其他類型的文章,歡迎大家多多支持,多多交流!

正文

在項目中經(jīng)常會遇到導出Word文檔,而當文檔格式比較復(fù)雜,要填充的內(nèi)容較多,經(jīng)過調(diào)查,發(fā)現(xiàn)采用python-docx-template庫是一個很好的實現(xiàn)方式。在這里記錄一下我們項目中使用過程。

python-docx-template庫的一些情況:

  • Github路徑:https://github.com/elapouya/python-docx-template

  • 它是一個Python庫,但是可以用在Django中,這一點我已經(jīng)實踐過。

  • Jinja2語法

  • 模板化處理,創(chuàng)建好模塊就可以替換諸如圖片,表格,頁眉等等一切你想替換的內(nèi)容。

  • 小眾庫,國內(nèi)用的不多,Github最新更新3個月前,210個星。
    使用這個庫很簡單,創(chuàng)建要生成Word的模板,然后在實際使用中替換模板內(nèi)容即可。


使用步驟1. 創(chuàng)建一個word模板
項目模板統(tǒng)一放在了\media\fb_dir\docx_tpl中:名為eval_task_tpl.docx

模塊語法講解:
循環(huán)獲取report_list中的內(nèi)容,并且每行顯示對應(yīng)的內(nèi)容。

使用步驟2. Django創(chuàng)建View函數(shù)
python-docx-template生成模板的功能比我使用的要多很多,可以參考使用文檔:http://docxtpl.readthedocs.io/en/latest/

根據(jù)模板生成文檔部分代碼

file_location=u'media/fb_dir/eval_task_result_docx/%d_%s_考評結(jié)果.docx' % (eval_task.id,eval_task.name)if not os.path.exists(file_location):    print('eval task docx not exist, generating... ')    Scoring_report_list = ScoringFinalReport.objects.all()    #建立模板實例    doc = DocxTemplate('media/fb_dir/docx_tpl/eval_task_tpl.docx')    #建立文檔內(nèi)容    context1 = {  'report_list': Scoring_report_list   }    #將模板內(nèi)容與模板關(guān)聯(lián)    doc.render(context1)    #導出并保存文檔    doc.save(file_location)

彈出下載框部分

content = open(file_location, 'rb').read()response = HttpResponse(content, content_type='application/octet-stream')response['Content-Disposition'] = 'attachment; filename={0}'.format(urlquote(file_name))   #IE EDGE

使用步驟3. 創(chuàng)建該函數(shù)的Url映射

   url(r'^export_eval_task/(?P\d+)$', views.export_eval_task, name='ExportEvalTask'),

使用步驟4. 前臺界面調(diào)用

   

最后上效果圖

下載效果圖:

導出Word結(jié)果:

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Python Django框架優(yōu)缺點有哪些?
Django使用python
實現(xiàn)一鍵翻譯英文論文,實現(xiàn)了pdf文檔英譯漢,pdf格式不變
使用Python自動化Microsoft Excel和Word
利用 Python 特性在 Jinja2 模板中執(zhí)行任意代碼
使用 Python Template類格式化字符串
更多類似文章 >>
生活服務(wù)
分享 收藏 導長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服