擅长:python、mysql、java
<p>作为一种更简洁的方法,您可以注册一个渲染器。在</p>
<p>在配置设置中,添加:</p>
<pre><code> config.add_renderer(name='csv',
factory='mypackage.renderers.CSVRenderer')
</code></pre>
<p>然后在<code>mypackage/renderers.py</code>中:</p>
^{pr2}$
<p>之后,可以使用渲染器装饰视图:</p>
<pre><code>@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
}
</code></pre>
<p>这种方法的优点是可以更好地测试视图代码(只需检查字典值,无需解析任何内容),还可以向同一视图添加XLS或任何呈现器:</p>
<pre><code>@view_config(..., renderer='xls')
@view_config(..., renderer='csv')
def myview(self):
...
</code></pre>