国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
當(dāng)前位置: 首頁 - 科技 - 知識(shí)百科 - 正文

在Python的Django框架中用流響應(yīng)生成CSV文件的教程

來源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 14:33:13
文檔

在Python的Django框架中用流響應(yīng)生成CSV文件的教程

在Python的Django框架中用流響應(yīng)生成CSV文件的教程:在Django里,流式響應(yīng)StreamingHttpResponse是個(gè)好東西,可以快速、節(jié)省內(nèi)存地產(chǎn)生一個(gè)大型文件。 目前項(xiàng)目里用于流式響應(yīng)的一個(gè)是Eventsource,用于改善跨系統(tǒng)通訊時(shí)用戶產(chǎn)生的慢速的感覺。這個(gè)不細(xì)說了。 還有一個(gè)就是生成一個(gè)大的csv文件。 當(dāng)Djan
推薦度:
導(dǎo)讀在Python的Django框架中用流響應(yīng)生成CSV文件的教程:在Django里,流式響應(yīng)StreamingHttpResponse是個(gè)好東西,可以快速、節(jié)省內(nèi)存地產(chǎn)生一個(gè)大型文件。 目前項(xiàng)目里用于流式響應(yīng)的一個(gè)是Eventsource,用于改善跨系統(tǒng)通訊時(shí)用戶產(chǎn)生的慢速的感覺。這個(gè)不細(xì)說了。 還有一個(gè)就是生成一個(gè)大的csv文件。 當(dāng)Djan

在Django里,流式響應(yīng)StreamingHttpResponse是個(gè)好東西,可以快速、節(jié)省內(nèi)存地產(chǎn)生一個(gè)大型文件。

目前項(xiàng)目里用于流式響應(yīng)的一個(gè)是Eventsource,用于改善跨系統(tǒng)通訊時(shí)用戶產(chǎn)生的慢速的感覺。這個(gè)不細(xì)說了。

還有一個(gè)就是生成一個(gè)大的csv文件。

當(dāng)Django進(jìn)程處于gunicorn或者uwsgi等web容器中時(shí),如果響應(yīng)超過一定時(shí)間沒有返回,就會(huì)被web容器終止掉,雖然我們可以通過加長web容器的超時(shí)時(shí)間來繞過這個(gè)問題,但是畢竟還是治標(biāo)不治本。要根本上解決這個(gè)問題,Python的生成器、Django框架提供的StreamingHttpResponse這個(gè)流式響應(yīng)很有幫助

而在csv中,中文的處理也至關(guān)重要,要保證用excel打開csv不亂碼什么的。為了節(jié)約空間,我就把所有代碼貼到一起了。實(shí)際使用按照項(xiàng)目的規(guī)劃放置哈

上代碼:

from __future__ import absolute_import
import csv
import codecs
import cStringIO


class Echo(object):

 def write(self, value):
 return value

class UnicodeWriter:

 """
 A CSV writer which will write rows to CSV file "f",
 which is encoded in the given encoding.
 """

 def __init__(self, f, dialect=csv.excel, encoding="utf-8", **kwds):
 # Redirect output to a queue
 self.queue = cStringIO.StringIO()
 self.writer = csv.writer(self.queue, dialect=dialect, **kwds)
 self.stream = f
 self.encoder = codecs.getincrementalencoder(encoding)()

 def writerow(self, row):
 self.writer.writerow([handle_column(s) for s in row])
 # Fetch UTF-8 output from the queue ...
 data = self.queue.getvalue()
 data = data.decode("utf-8")
 # ... and reencode it into the target encoding
 data = self.encoder.encode(data)
 # write to the target stream
 value = self.stream.write(data)
 # empty queue
 self.queue.truncate(0)
 return value

 def writerows(self, rows):
 for row in rows:
 self.writerow(row)

from django.views.generic import View
from django.http.response import StreamingHttpResponse

class ExampleView(View):
 headers=['一些','表頭']
 def get(self,request):
 result = [['第一行','數(shù)據(jù)1'],
 ['第二行','數(shù)據(jù)2']]
 echoer = Echo()
 writer = UnicodeWriter(echoer)
 def csv_itertor():
 yield codecs.BOM_UTF8
 yield writer.writerow(self.headers)
 for column in result:
 yield writer.writerow(column)

 response = StreamingHttpResponse(
 (row for row in csv_itertor()),
 content_type="text/csv;charset=utf-8")
 response['Content-Disposition'
 ] = 'attachment;filename="example.csv"'
 return response

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

在Python的Django框架中用流響應(yīng)生成CSV文件的教程

在Python的Django框架中用流響應(yīng)生成CSV文件的教程:在Django里,流式響應(yīng)StreamingHttpResponse是個(gè)好東西,可以快速、節(jié)省內(nèi)存地產(chǎn)生一個(gè)大型文件。 目前項(xiàng)目里用于流式響應(yīng)的一個(gè)是Eventsource,用于改善跨系統(tǒng)通訊時(shí)用戶產(chǎn)生的慢速的感覺。這個(gè)不細(xì)說了。 還有一個(gè)就是生成一個(gè)大的csv文件。 當(dāng)Djan
推薦度:
標(biāo)簽: 生成 使用 在使用
  • 熱門焦點(diǎn)

最新推薦

猜你喜歡

熱門推薦

專題
Top 主站蜘蛛池模板: 一级毛片私人影院免费 | 国产主播一区 | 国产精品日韩精品 | 中文字幕另类 | 亚洲天堂欧美 | 欧美人与曾| 欧美激情一区二区三区四区 | 图片区 日韩 欧美 亚洲 | 国产精品免费视频网站 | 国产 欧美 日本 | 国产97视频 | 亚洲欧美日韩精品专区卡通 | 欧美成人久久电影香蕉 | 日韩欧美网| 日日久 | 视频一区久久 | 欧美日韩国产精品综合 | 欧美爱爱网站 | 欧美第3页 | 欧美精品午夜久久久伊人 | 国内精品一区二区三区 | 国产成人精品一区二区三区… | 久久久久亚洲精品成人网小说 | 精品一区二区三区18 | 99久久国产综合精品成人影院 | 99久久99这里只有免费的精品 | 国产欧美又粗又猛又爽老 | 国内一区亚洲综合图区欧美 | 国产一区二区三区视频在线观看 | 韩国精品在线 | 欧美高清不卡 | 欧美日韩免费 | 欧美国产日韩一区二区三区 | 欧美激情在线播放一区二区三区 | 91精品日本久久久久久牛牛 | 亚洲黄色一区二区 | 国产偷自拍 | 国产精品久久久久国产精品 | 国产传媒一区二区三区四区五区 | 乌克兰性欧美精品高清bd | 国产亚洲视频在线 |