想要提示浏览器保存csv

2024-02-17

想要提示浏览器使用pyramid.response.Response保存csv寻找线索,发现这里的a link https://docs.djangoproject.com/en/dev/howto/outputting-csv/?from=olddocsDjango 答案,但我不能将它与 Pyramid wsgi 一起使用,我的代码如下所示:

from pyramid.response import Response
def get_list_names_emails(request):
    session, env = request.db, request.client_env
    response = Response(content_type='text/csv')
    output = StringIO()
    writer = csv.writer(output)
    writer.writerow(['SomeName', 'SomeEmail', 'CompanyName])
    csv_output = output.getvalue()
    return csv_output

作为一种更简洁的方法,您可以注册渲染器。

在您的配置设置中,添加:

    config.add_renderer(name='csv',
                        factory='mypackage.renderers.CSVRenderer')

then in mypackage/renderers.py:

class CSVRenderer(object):
    def __init__(self, info):
        pass

    def __call__(self, value, system):
        fout = StringIO.StringIO()
        writer = csv.writer(fout, delimiter=';', quoting=csv.QUOTE_ALL)

        writer.writerow(value['header'])
        writer.writerows(value['rows'])

        resp = system['request'].response
        resp.content_type = 'text/csv'
        resp.content_disposition = 'attachment;filename="report.csv"'
        return fout.getvalue()

之后,您可以使用渲染器装饰您的视图:

@view_config(..., renderer='csv')
def myview(self):
    header = ['name', 'surname', 'address']

    rows = [
            (
                row['name'],
                row['surname'],
                row['address'],
            )
        for row in query_rows(.....)
        ]

    return {
            'header': header,
            'rows': rows
            }

这种方法的优点是更好的可测试视图代码(您只需检查字典值,无需解析任何内容),您还可以将 XLS 或任何渲染器添加到同一视图:

@view_config(..., renderer='xls')
@view_config(..., renderer='csv')
def myview(self):
    ...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

想要提示浏览器保存csv 的相关文章

  • 如何在 Windows 64 上安装 NumPy?

    NumPy 安装程序在注册表中找不到 python 路径 无法安装 需要 Python 2 5 版本 但在注册表中未找到该版本 OK 我必须修改注册表吗 我已经修改了 PATH 以指向Python25安装目录 我可以检查一下您使用的是什么安
  • 递归 lambda 表达式可能吗?

    我正在尝试编写一个调用自身的 lambda 表达式 但我似乎找不到任何语法 或者即使它是可能的 本质上我想将以下函数传输到以下 lambda 表达式中 我意识到这是一个愚蠢的应用程序 它只是添加 但我正在探索可以在 python 中使用 l
  • 如何在python 3.7中生成条形码

    我正在使用 python 3 7 为了生成条形码 我尝试使用安装 pyBarcode 库pip install pyBarcode 但它显示以下错误 找不到满足 pyBarcode 要求的版本 来自版本 找不到 pyBarcode 的匹配分
  • Sublime Text 插件开发中的全局 Python 包

    一 总结 我不知道 Sublime Text 插件开发人员如何使用 Sublime Text 查找全局 Python 包 而不是 Sublime Text 目录的 Python 包 Sublime Text使用自己的Python环境 而不是
  • python 中的并行处理

    在 python 2 7 中进行并行处理的简单代码是什么 我在网上找到的所有示例都很复杂 并且包含不必要的代码 我该如何做一个简单的强力整数分解程序 在每个核心 4 上分解 1 个整数 我真正的程序可能只需要2个核心 并且需要共享信息 我知
  • 为什么删除临时文件时出现WindowsError?

    我创建了一个临时文件 向创建的文件添加了一些数据 已保存 然后尝试将其删除 但我越来越WindowsError 编辑后我已关闭该文件 如何检查哪个其他进程正在访问该文件 C Documents and Settings Administra
  • Pandas:GroupBy 到 DataFrame

    参考这个关于 groupby 到 dataframe 的非常流行的问题 https stackoverflow com questions 10373660 converting a pandas groupby object to dat
  • 删除 Django 1.7 中的应用程序(和关联的数据库表)

    是否可以使用 Django 1 7 迁移来完全删除 卸载应用程序及其所有跟踪 主要是其所有数据库表 如果没有 在 Django 1 7 中执行此操作的适当方法是什么 python manage py migrate
  • 工作日重新订购 Pandas 系列

    使用 Pandas 我提取了一个 CSV 文件 然后创建了一系列数据来找出一周中哪几天崩溃最多 crashes by day bc DAY OF WEEK value counts 然后我将其绘制出来 但当然它按照与该系列相同的排名顺序绘制
  • Python3.0 - 标记化和取消标记化

    我正在使用类似于以下简化脚本的内容来解析较大文件中的 python 片段 import io import tokenize src foo bar src bytes src encode src io BytesIO src src l
  • 搜索多个字段

    我想我没有正确理解 django haystack 我有一个包含多个字段的数据模型 我希望搜索其中两个字段 class UserProfile models Model user models ForeignKey User unique
  • 如何在 Python 中加密并在 Java 中解密?

    我正在尝试在 Python 程序中加密一些数据并将其保存 然后在 Java 程序中解密该数据 在Python中 我像这样加密它 from Crypto Cipher import AES KEY 1234567890123456789012
  • Emacs 24.x 上的 IPython 支持

    我对 IPython 与 Emacs 的集成感到困惑 从 Emacs 24 开始 Emacs 附带了自己的python el 该文件是否支持 IPython 还是仅支持 Python 另外 维基百科 http emacswiki org e
  • 使用 python 绘制正值小提琴图

    我发现小提琴图信息丰富且有用 我使用 python 库 seaborn 然而 当应用于正值时 它们几乎总是在低端显示负值 我发现这确实具有误导性 尤其是在处理现实数据集时 在seaborn的官方文档中https seaborn pydata
  • 用 python 编写的数学语法检查器

    我需要的只是使用 python 检查字符串是否是有效的数学表达式 为了简单起见 假设我只需要 运算符 也作为一元 带有数字和嵌套括号 为了完整性 我还添加了简单的变量名称 所以我可以这样测试 test 3 2 1 valid test 3
  • 从 NumPy 数组到 Mat 的 C++ 转换 (OpenCV)

    我正在围绕 ArUco 增强现实库 基于 OpenCV 编写一个薄包装器 我试图构建的界面非常简单 Python 将图像传递给 C 代码 C 代码检测标记并将其位置和其他信息作为字典元组返回给 Python 但是 我不知道如何在 Pytho
  • 动态过滤 pandas 数据框

    我正在尝试使用三列的阈值来过滤 pandas 数据框 import pandas as pd df pd DataFrame A 6 2 10 5 3 B 2 5 3 2 6 C 5 2 1 8 2 df df loc df A gt 0
  • Django Admin 中的反向内联

    我有以下 2 个型号 现在我需要将模型 A 内联到模型 B 的页面上 模型 py class A models Model name models CharField max length 50 class B models Model n
  • python 线程安全可变对象复制

    Is 蟒蛇的copy http docs python org 2 library copy html模块线程安全吗 如果不是 我应该如何在 python 中以线程安全的方式复制 deepcopy 可变对象 蟒蛇的GIL http en w
  • 从 pandas DataFrame 中删除少于 K 个连续 NaN

    我正在处理时间序列数据 我在从数据帧列中删除小于或等于阈值的连续 NaN 时遇到问题 我尝试查看一些链接 例如 标识连续 NaN 出现的位置以及计数 Pandas NaN 孔的游程长度 https stackoverflow com que

随机推荐

  • 如何在 Spring boot 应用程序的嵌入式 untertow 中禁用 HTTP TRACE

    我的目标是为我的 Spring Boot 应用程序禁用 HTTP TRACE 方法 该应用程序使用嵌入式 undertow 最好进行有效的 yaml 更改 如果没有 更改代码也可以 理想情况下 最终结果应该是 4xx HTTP 响应代码 并
  • Window.popup 在浏览器中居中对齐

    我有一个动态生成的 Div 数据 我想在某个事件触发后在弹出窗口中打开该 div 数据 我的代码已经完成了 但是当弹出窗口在我的浏览器中打开时 它没有居中对齐 它出现在角落里 我的代码 var left window screen widt
  • Netstream 和step() 或seek()?

    我正在做一个 AS3 项目 正在播放视频 H264 由于某些特殊原因 我想去某个职位 a 我尝试使用 NetStream seek 在那里它只进入关键帧 在我当前的设置中 这意味着 我可以每 1 秒找到一个位置 为了获得更好的分辨率 我必须
  • Numpy 向量化:查找列表和列表列表之间的交集

    我试图找到列表和列表列表之间的交集 这个问题可以通过一个简单的 for 循环轻松解决 def find intersec x y result for i in range len y if set x intersection set y
  • 当前上下文中不存在名称<对象名称>

    大多数问题与旧版本有关ASP NET MVC 我的问题与最新相关 NET Core建立在框架4 6 我创建了一个控制台应用程序和标准类库 我安装了运行 WEB 所需的所有库 NET Core 一切工作正常 视图编译良好 调试视图也正常工作
  • PHP 选项下拉列表将选项设置为存储在数据库中的一个

    我有一个 PHP 表单 我用它来编辑 MySQL 数据库中的记录 它有一个值的下拉列表 我想将数据库中保存的选项设置为列表中的第一个选项 这样如果用户不想更改选项 那么数据库将不会被默认选项覆盖 任何人都可以提出一个非常简单的解决方案吗 根
  • 右值函数重载

    我想重载一个函数 以便它以某种方式操纵它的参数 然后返回对该参数的引用 但如果参数不可变 那么它应该返回一个被操纵的copy相反 经过多年的摸索之后 这就是我想到的 using namespace std string foo string
  • 我怎样才能以相反的方式制作动画?

    问候 我正在更改用作 bar 的元素的宽度 并且有效 然而我不能 使它朝相反的方向动画 我尝试将 放在 bar width 前面 但无济于事 宽度将动态计算 只是我希望方向向左而不是向右 就像这样 var bar width this cs
  • 如何限制客户端服务器程序的连接数

    我想要一个服务器程序 它应该只接受最多一个连接 并且应该丢弃其他连接 我怎样才能实现这个目标 Only accept 单个连接 这是一个典型的服务器例程 s socket bind s listen s backlog while 1 t
  • 开源/免费的通用 EPG/XMLTV 数据 API 或服务,或者如何制作一个? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找通用 EPG XMLTV 服务的 开源 又名 免费 数据源 该项目需要以易于解析的格式更新 可更新的实时电视调度信息 它还必须免
  • ParseUser 返回类型的解析子类

    我对 parseUser 进行子类化 所以当我查找用户时我使用 query getFirstInBackground new GetCallback
  • ggplot2 等高线图中的自定义级别?

    这是文档网站的代码片段 Generate data library reshape2 for melt volcano3d lt melt volcano names volcano3d lt c x y z Basic plot v lt
  • 是否有针对这些特定的多线程数据结构需求的现有解决方案?

    我需要一个支持这些声明的多线程数据结构 允许多个并发读取器和写入器 已排序 很容易推理 满足多个读者和一名作者要容易得多 但我真的希望允许多个作者 我一直在研究这个领域 并且我知道 ConcurrentSkipList 由 Lea 基于 F
  • 如何禁用Xcode4.2自动引用计数

    今天 我已经将我的xCode更新到4 2版本 并且我想禁用ARC 我也用google搜索 但无法解决我的问题 根据搜索结果 在目标设置中 我找不到 Objective C自动引用计数 项 所以没有机会将其设置为NO 我一项一项地查找该项目
  • 无法将 @type/node 与 typescript 3.2 一起使用

    我无法在 Typescript 3 2 中使用任何类型的 type node 我的 tsconfig compilerOptions target es5 module commonjs moduleResolution node sour
  • 点击关闭时不要关闭 UIPopoverController

    经过一番搜索后 我找不到对许多人有用的答案 有没有办法制作一个UIPopoverController not当用户点击外部某处时关闭 我希望用户必须使用取消按钮 是的 我意识到这可能在某种程度上违反了 Apple 的 HIG 但这是一种罕见
  • 如何为 vue-ads-table 中的每个 _children 进行复选框

  • c# - 如何迭代类字段并设置属性

    我不确定这是否可行 但我想迭代一个类并设置字段成员属性 而不显式引用字段对象 public class Employee public Person person new Person public void DynamicallySetP
  • Php/MySql“高级搜索”页面

    我正在网站上的 高级搜索 页面上工作 您可以在其中输入关键字 例如 我喜欢苹果 它可以使用以下选项搜索数据库 寻找 用所有的词 用 精确的短语 至少有一个 言语 无言语 我可以通过以下方式处理 精确短语 SELECT FROM myTabl
  • 想要提示浏览器保存csv

    想要提示浏览器使用pyramid response Response保存csv寻找线索 发现这里的a link https docs djangoproject com en dev howto outputting csv from ol