做爰高潮a片〈毛片〉,尤物av天堂一区二区在线观看,一本久久A久久精品VR综合,添女人荫蒂全部过程av

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題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關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
當前位置: 首頁 - 科技 - 知識百科 - 正文

在Python的Django框架中用流響應生成CSV文件的教程

來源:懂視網 責編:小采 時間:2020-11-27 14:33:13
文檔

在Python的Django框架中用流響應生成CSV文件的教程

在Python的Django框架中用流響應生成CSV文件的教程:在Django里,流式響應StreamingHttpResponse是個好東西,可以快速、節省內存地產生一個大型文件。 目前項目里用于流式響應的一個是Eventsource,用于改善跨系統通訊時用戶產生的慢速的感覺。這個不細說了。 還有一個就是生成一個大的csv文件。 當Djan
推薦度:
導讀在Python的Django框架中用流響應生成CSV文件的教程:在Django里,流式響應StreamingHttpResponse是個好東西,可以快速、節省內存地產生一個大型文件。 目前項目里用于流式響應的一個是Eventsource,用于改善跨系統通訊時用戶產生的慢速的感覺。這個不細說了。 還有一個就是生成一個大的csv文件。 當Djan

在Django里,流式響應StreamingHttpResponse是個好東西,可以快速、節省內存地產生一個大型文件。

目前項目里用于流式響應的一個是Eventsource,用于改善跨系統通訊時用戶產生的慢速的感覺。這個不細說了。

還有一個就是生成一個大的csv文件。

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

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

上代碼:

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 = [['第一行','數據1'],
 ['第二行','數據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

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

在Python的Django框架中用流響應生成CSV文件的教程

在Python的Django框架中用流響應生成CSV文件的教程:在Django里,流式響應StreamingHttpResponse是個好東西,可以快速、節省內存地產生一個大型文件。 目前項目里用于流式響應的一個是Eventsource,用于改善跨系統通訊時用戶產生的慢速的感覺。這個不細說了。 還有一個就是生成一個大的csv文件。 當Djan
推薦度:
標簽: 生成 使用 在使用
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top 主站蜘蛛池模板: 垣曲县| 衡山县| 崇阳县| 达拉特旗| 南充市| 韶山市| 平武县| 昭通市| 山西省| 呼伦贝尔市| 明水县| 沙洋县| 布尔津县| 获嘉县| 孟州市| 扶余县| 卢湾区| 武乡县| 海淀区| 平塘县| 吉首市| 连江县| 泰兴市| 娄烦县| 合川市| 揭阳市| 洛宁县| 屏东市| 嘉善县| 全南县| 尚义县| 新邵县| 呈贡县| 句容市| 临泽县| 尼勒克县| 姜堰市| 彭州市| 菏泽市| 冀州市| 合江县|