On Tuesday, November 15, 2016 at 3:41:39 AM UTC-8, lucas wrote:
>
> ok, with dave's prompting and help, i got the code to work. i don't
> understand why taking the response.write() function out there works. how
> come?
>
> here is my working snippet:
>
> from cStringIO import StringIO
> stream = StringIO()
> if (file_return == 'xml'):
> from gluon.serializers import xml
> stream.write(xml(dct))
> response.headers['Content-Type'] = 'text/xml;
> charset=us-ascii'
> response.headers['Content-disposition'] = 'attachment;
> filename=hsDNA_%s_IQa.xml' % (qry[0][1])
> return stream.getvalue()
> else:
> stream.write(r"%s" % dct)
> response.headers['Content-Type'] = 'text/plain;
> charset=us-ascii'
> response.headers['Content-disposition'] = 'attachment;
> filename=hsDNA_%s_IQa.py' % (qry[0][1])
> return stream.getvalue()
>
> i got rid of the csv option and just went with xml and python. both are
> working great.
>
> thanx dave, lucas
>
Good to hear you're good to go. FWIW, I had little trouble transplanting
the appadmin example into my csv test program.
def getcsv():
import gluon.contenttype
response.headers['Content-Type'] = \
gluon.contenttype.contenttype('.csv')
query = db.uptable(id > 0)
response.headers['Content-disposition'] = 'attachment;
filename=%s_%s.csv'\
% tuple(request.vars.where.split('.')[:2])
return str(db(query, ignore_common_filters=True).select(db.uptable.id,db
.uptable.something))
(Yes, I really do have a field called "something" ... it is a test
program, after all)
theurl/getcsv?where=fiddle.x gets turned into fiddle_x.csv, in a minor
tweak of appadmin's attempt to get the table name.
/dps
--
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
---
You received this message because you are subscribed to the Google Groups
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.