本文整理汇总了Python中oasis.lib.DB.get_qt_atts方法的典型用法代码示例。如果您正苦于以下问题:Python DB.get_qt_atts方法的具体用法?Python DB.get_qt_atts怎么用?Python DB.get_qt_atts使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类oasis.lib.DB
的用法示例。
在下文中一共展示了DB.get_qt_atts方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: qts_to_zip
# 需要导入模块: from oasis.lib import DB [as 别名]
# 或者: from oasis.lib.DB import get_qt_atts [as 别名]
def qts_to_zip(qt_ids, fname="oa_export", extra_info = None):
""" Take a list of QTemplate IDs and return a binary string containing
them as an .oaq file.
(a zip file in special format)
"""
fname = os.path.basename(fname)
qdir = tempfile.mkdtemp(prefix="oa")
info = {
'oasis': {
'oa_version': "3.9.4",
'qt_version': '0.9',
'url': OaConfig.parentURL
},
'qtemplates': {},
'extra': extra_info
}
arc = zipfile.ZipFile(os.path.join(qdir, "oasisqe.zip"),
'w',
zipfile.ZIP_DEFLATED)
for qt_id in qt_ids:
qtemplate = DB.get_qtemplate(qt_id)
qtdir = os.path.join(qdir, str(qt_id))
attachments = DB.get_qt_atts(qt_id)
if not 'qtemplate.html' in attachments:
attachments.append('qtemplate.html')
if not 'datfile.txt' in attachments:
attachments.append('datfile.txt')
if not 'image.gif' in attachments:
attachments.append('image.gif')
os.mkdir(qtdir)
os.mkdir(os.path.join(qtdir, "attach"))
info["qtemplates"][qt_id] = {'qtemplate': qtemplate}
info["qtemplates"][qt_id]["attachments"] = []
for name in attachments:
if not name:
name='UNKNOWN'
mtype = DB.get_qt_att_mimetype(qt_id, name)
if not mtype:
mtype = ""
data = DB.get_qt_att(qt_id, name)
if not data:
data = ""
info["qtemplates"][qt_id]["attachments"].append([name, mtype, len(data)])
subdir = os.path.join(qtdir, "attach", name)
outf = open(subdir, "wb")
outf.write(data)
outf.close()
arc.write(subdir,
os.path.join("%s" % qt_id, "attach", name),
zipfile.ZIP_DEFLATED)
infof = open(os.path.join(qdir, "info.json"), "wb")
infof.write(json.dumps(info))
infof.close()
arc.write(os.path.join(qdir, "info.json"),
os.path.join("info.json"),
zipfile.ZIP_DEFLATED)
arc.close()
readback = open(os.path.join(qdir, "oasisqe.zip"), "rb")
data = readback.read()
readback.close()
shutil.rmtree(qdir)
return data