def post(self): appcode = self.request.get('appcode', None) imagenum = self.request.get('imagenum', '0') plugin = None if 0 < Plugin.all().filter('appcode =', appcode).count(): for p in Plugin.all().filter('appcode =', appcode): plugin = p if not plugin: self.flush({"status": 404}) return result = {'status': 200} if int(imagenum) != len(plugin.imagelist): for imgid in plugin.imagelist: b = blobstore.BlobInfo.get(imgid) if b: b.delete() imgurllist = [] for i in range(10): imgurllist.append(blobstore.create_upload_url('/imageupload?pluginid=%s' % (plugin.key().id()))) result['upload_image_url'] = imgurllist if not plugin.apkkey: result['upload_url'] = blobstore.create_upload_url('/upload?pluginid=%s' % (plugin.key().id())) if not plugin.imageid: result['upload_icon_url'] = blobstore.create_upload_url('/iconupload?pluginid=%s' % (plugin.key().id())) self.flush(result)
def get(self): kindid = self.request.get('kindid',None) if kindid: kindid = int(kindid) # kind = Kind.get_by_id(kindid) else: return self.redirect('/KindList') url = urllib.quote( 'FenKindPlugin?kindid=%s'%kindid) kindlist = [] allpluginlist = Plugin.all().filter('isdel =',False) for kind in Kind.get_by_id([kindid]): if not kind: continue pluginlist = Plugin.get_by_id(kind.applist) pluginlistempty= [] for p in allpluginlist: f = False for pl in pluginlist: if p.key().id() == pl.key().id(): f = True break if not f: pluginlistempty.append(p) kindlist.append((kind,pluginlist,pluginlistempty)) self.render('template/kind/fenkindplugin.html',{"kindlist":kindlist, 'url':url})
def get(self, *args): pluginid = self.request.get('pluginid') kindid = self.request.get('kindid') plugin = Plugin.get_by_id(int(pluginid)) query = Plugin.all().filter('kindids =', int(kindid)).order('index_time').fetch(1) for p in query: if p.key().id() != plugin.key().id(): import datetime as dt plugin.index_time = p.index_time - dt.timedelta(minutes=1) plugin.put() self.getResult(True, u'置顶成功。', None) else: self.getResult(False, u'置顶失败。', None)
def get(self): pluginVersionDict = {} query=Plugin.all() appcode=self.request.get('appcode',None) if appcode: query.filter('appcode =',appcode) for plugin in query.order('-lastUpdateTime'): if plugin.isdel: pluginVersionDict[plugin.appcode] = {'isdel': plugin.isdel} else: pluginVersionDict[plugin.appcode] = {'plugin': plugin, 'isdel': plugin.isdel} pluginVersion = memcache.get('newpluginVersion' + plugin.appcode) if not pluginVersion: pluginVersion = PluginVersion.all().filter('plugin =', plugin.key().id()).order( '-versionnum').fetch(1) if len(pluginVersion): pluginVersion = pluginVersion[0] memcache.set('newpluginVersion' + plugin.appcode, pluginVersion, 360000) if pluginVersion: pluginVersionDict[plugin.appcode]['pluginVersion'] = pluginVersion pluginVersionDict[plugin.appcode]['newversionnum'] = pluginVersion.versionnum if not pluginVersion.data and not pluginVersion.datakey: del pluginVersionDict[appcode] # 输出 json 字符串 plugin 对象 result={'pluginlist':jsonToStr(pluginVersionDict),"notice":[]} self.flush(result)
def post(self): appcodes = self.request.get('appcodes', '').split(',') pluginVersionDict = {} for appcode in appcodes: versionnum = self.request.get(appcode, '') pluginVersionDict[appcode] = {'versionnum': versionnum, 'isdel': True} plugin = memcache.get('plugin' + appcode) if not plugin: plugin = Plugin.all().filter('appcode =', appcode).fetch(1) if len(plugin): plugin = plugin[0] memcache.set('plugin' + appcode, plugin, 360000) if plugin and plugin.isdel == False: pluginVersionDict[appcode]['isdel'] = False pluginVersion = memcache.get('newpluginVersion' + appcode) if not pluginVersion: pluginVersion = PluginVersion.all().filter('plugin =', plugin.key().id()).order( '-versionnum').fetch(1) if len(pluginVersion): pluginVersion = pluginVersion[0] memcache.set('newpluginVersion' + appcode, pluginVersion, 360000) if pluginVersion: pluginVersionDict[appcode]['plugin'] = plugin pluginVersionDict[appcode]['pluginVersion'] = pluginVersion pluginVersionDict[appcode]['newversionnum'] = pluginVersion.versionnum if not pluginVersion.data and not pluginVersion.datakey: del pluginVersionDict[appcode] # 输出 json 字符串 plugin 对象 if pluginVersionDict: msg=[{"msg":u"新收到%s条插件更新信息"%(len(pluginVersionDict.keys()),),"type":1}] else: msg=[] result={'pluginlist':jsonToStr(pluginVersionDict),"notice":[]} self.flush(result)
def get(self): id = self.request.get('id', None) plugin = {} if id: plugin = Plugin.get_by_id(int(id)) self.render('template/plugin/pluginUpdate.html', {'plugin': plugin, 'id': id})
def post(self): noteupdate = datetime.datetime.utcnow() + timezone id = self.request.get('id', None) title = self.request.get('title', None) type = self.request.get('type', None) pluginid = self.request.get('plugin', None) startdate = self.request.get('startdate', None) enddate = self.request.get('enddate', None) plugin = None if type == '2' and pluginid: plugin = Plugin.get_by_id(int(pluginid)) if id: notice = Notice.get_by_id(int(id)) notice.content = [] else: notice = Notice() if plugin: notice.plugin = plugin.key().id() notice.pluginimg = plugin.imageid notice.title = title notice.startdate = datetime.datetime.strptime(startdate + ' 00:00:00', '%Y/%m/%d %H:%M:%S') notice.enddate = datetime.datetime.strptime(enddate + ' 23:59:59', '%Y/%m/%d %H:%M:%S') notice.type = int(type) notice.lastUpdateTime = noteupdate notice.put() deleteNoticeMemcache() noticeconten = [] for item in notice.content: noticeconten.append(json.loads(item)) noticedict = {'id': notice.key().id(), 'title': notice.title, 'type': notice.type, 'lastUpdateTime': notice.lastUpdateTime.strftime('%Y-%m-%d %H:%M'), 'startdate': notice.startdate.strftime('%Y-%m-%d %H:%M'), 'pluginid': notice.plugin, 'enddate': notice.enddate.strftime('%Y-%m-%d %H:%M'), 'pluginimg': notice.pluginimg, 'noticeconten': noticeconten} self.getResult(True, u'保存系统信息成功', noticedict)
def get(self): #url 缓存 cachename = 'plugininfoall' cacheresult = memcache.get(cachename) if cacheresult: self.flush(cacheresult) return #无 url缓存 allkindlist = memcache.get('allkindlist') if not allkindlist: allkindlist = Kind.get_by_id(getKindSort().kindlist) memcache.set('allkindlist', allkindlist, 3600 * 24) kindlist = [] pluginlist = [] for i, kind in enumerate(allkindlist): pluginquery = Plugin.all().filter('kindids =', kind.key().id()).filter('isactive =', True).order('index_time') k = {'name': kind.name, 'index': i, 'list': []} for p in pluginquery.fetch(7): pluginlist.append(json_to_str(p)) k['list'].append(p.appcode) kindlist.append(k) # 输出 json 字符串 plugin 对象 # result = {'pluginlist': jsonToStr(pluginVersionDict), "notice": [], 'kind': kindlist, 'status': 200, # 'success': True, 'message': u''} self.getResult(True, u'', {'pluginlist': pluginlist, 'kind': kindlist, "notice": []}, cachename=cachename)
def get(self): id = self.request.get('id', None) pluginid = self.request.get('pluginid', None) plugin = {} pluginVersionList = [] if pluginid: plugin = Plugin.get_by_id(int(pluginid)) pluginVersionList = PluginVersion.all().filter('plugin =', int(pluginid)).order('-versionnum') pluginVersion = {} if id: pluginVersion = PluginVersion.get_by_id(int(id)) if not pluginid or pluginVersion.plugin != int(pluginid): plugin = Plugin.get_by_id(pluginVersion.plugin) self.render('template/plugin/pluginUpload.html', {'plugin': plugin, 'pluginVersion': pluginVersion, 'pluginVersionList': pluginVersionList, 'id': id, 'pluginid': pluginid})
def get(self): pluginid = self.request.get('pluginid', '') id = self.request.get('id', '') pluginVersionList=[] if pluginid: plugin = Plugin.get_by_id(int(pluginid)) pluginVersionList = PluginVersion.all().filter('plugin =', int(pluginid)).order('-versionnum') pluginVersion = {} if id: pluginVersion = PluginVersion.get_by_id(int(id)) if not pluginid or pluginVersion.plugin != int(pluginid): plugin = Plugin.get_by_id(pluginVersion.plugin) data={'plugin': plugin, 'pluginVersion': pluginVersion, 'pluginVersionList': pluginVersionList, 'id': id, 'pluginid': pluginid} upload_url = blobstore.create_upload_url('/upload?pluginversionid=%s'%(pluginVersion.key().id())) data['upload_url']=upload_url self.render('template/plugin/pluginUpload2.html',data)
def get(self, *args): cachename = 'appnamelist' cacheresult = memcache.get(cachename) if cacheresult: self.flush(cacheresult) return l = [] for p in Plugin.all().filter('isactive =', True).order('__key__'): l.append({'id': p.key().id(), 'name': p.name, 'icon': p.imageid}) self.getResult(True, u'', l, cachename=cachename)
def get(self): id = self.request.get('id', None) plugin = {} pluginVersion = {} if id: plugin = Plugin.get_by_id(int(id)) pvl = PluginVersion.all().filter('plugin =', int(id)).order('-versionnum').fetch(1) if pvl: pluginVersion = pvl[0] self.render('template/plugin/pluginDetail.html', {'plugin': plugin, 'pluginVersion': pluginVersion})
def get(self): kindlist = [] allpluginlist = Plugin.all().filter('isdel =',False) for kind in Kind.get_by_id(getKindSort().kindlist): if not kind: continue pluginlist = Plugin.get_by_id(kind.applist) pluginlistempty= [] for p in allpluginlist: f = False for pl in pluginlist: if p.key().id() == pl.key().id(): f = True break if not f: pluginlistempty.append(p) kindlist.append((kind,pluginlist,pluginlistempty)) self.render('template/kind/kindList.html',{"kindlist":kindlist})
def get(self, *args): pluginid = self.request.get('pluginid') kindid = self.request.get('kindid') plugin = Plugin.get_by_id(int(pluginid)) if int(kindid) in plugin.kindids: plugin.kindids.remove(int(kindid)) plugin.put() self.getResult(True, u'应用移出成功。', None) else: self.getResult(False, u'应用已经不在分类内了。', None)
def post(self, *args): id = self.request.get('id', None) pluginid = self.request.get('pluginid', None) if id and pluginid: id = int(id) plugin = Plugin.get_by_id(int(pluginid)) if id in plugin.kindids: plugin.kindids.remove(id) plugin.put() self.getResult(True, u'分类删除应用成功', None)
def get(self, *args): pluginid = self.request.get('pluginid') kindid = self.request.get('kindid') plugin = Plugin.get_by_id(int(pluginid)) if int(kindid) not in plugin.kindids: plugin.kindids.append(int(kindid)) plugin.put() self.getResult(True, u'加入分类成功。', None) else: self.getResult(False, u'应用已经在分类内了。', None)
def get(self): id = self.request.get('id', None) notice = {} if id: notice = Notice.get_by_id(int(id)) noticeconten=[] if notice: for item in notice.content: noticeconten.append(json.loads(item)) pluginList = Plugin.all().filter('isdel =', False).order('-lastUpdateTime') self.render('template/notice/noticeDetail.html', {'notice': notice, 'noticecontent':noticeconten, 'id': id, 'pluginList': pluginList})
def post(self): appcode = self.request.get('appcode', None) for plugin in Plugin.all().filter('appcode =', appcode): for pv in PluginVersion.all().filter('plugin =',plugin.key().id()): if pv.datakey: b=blobstore.BlobInfo.get(pv.datakey) if b: b.delete() upload_url = blobstore.create_upload_url('/upload?pluginversionid=%s'%(pv.key().id())) return self.flush({'status' : 200, 'upload_url' : upload_url}) return self.flush({'status':500,'message':u'插件已经存在'})
def get(self): id = self.request.get('id', None) if id: plugin = Plugin.get_by_id(int(id)) for pv in PluginVersion.all().filter('plugin =', int(id)): if pv.imageids: db.delete(Images.get_by_id(pv.imageids)) pv.delete() plugin.delete() self.flush(getResult(id, True, u'删除成功。')) else: self.flush(getResult('', False, u'删除失败,未提供插件id。'))
def get(self, *args): user = get_current_user(self) pluginid = self.request.get('pluginid') plugin = Plugin.get_by_id(int(pluginid)) if not plugin: self.getResult(True, u'删除成功。', None) return if user.get("auth") == 'admin' or user.get('username') == plugin.username: plugin.delete() self.getResult(True, u'删除成功。', None) else: self.getResult(False, u'删除失败,权限不足。', None)
def post(self): pluginid = self.request.get('pluginid', '') needBigData=False id = self.request.get('id', '') versioncode = self.request.get('versioncode', '') versionnum = self.request.get('versionnum', '') updateDesc = self.request.get('updateDesc', '') if id: pluginVersion = PluginVersion.get_by_id(int(id)) else: pluginVersion = PluginVersion() pluginVersion.plugin = int(pluginid) pluginVersion.versioncode = versioncode pluginVersion.versionnum = int(versionnum) pluginVersion.updateDesc = updateDesc appdata = self.request.POST.get('data') if appdata != '' and appdata != u'' and appdata != None: pluginVersion.data = db.Blob(appdata.file.read()) pluginVersion.size = appdata.bufsize else: needBigData=True for i in range(1, 11): imgfilename = 'image' + str(i) imgfield = self.request.POST.get(imgfilename) if imgfield != '' and imgfield != u'' and imgfield != None: if imgfield.type.lower() not in ['image/pjpeg', 'image/x-png', 'image/jpeg', 'image/png', 'image/gif', 'image/jpg']: continue imgfile = Images() imgfile.filename = imgfield.filename imgfile.filetype = imgfield.type imgfile.data = db.Blob(imgfield.file.read()) imgfile.size = imgfield.bufsize imgfile.put() pluginVersion.imageids.append(imgfile.key().id()) pluginVersion.put() plugin = {} pluginVersionList = [] if pluginid: plugin = Plugin.get_by_id(int(pluginid)) pluginVersionList = PluginVersion.all().filter('plugin =', int(pluginid)).order('-versionnum') data={'plugin': plugin, 'pluginVersion': pluginVersion, 'pluginVersionList': pluginVersionList, 'id': id, 'pluginid': pluginid, 'result': 'succeed', 'msg': u'操作成功。','needBigData':needBigData} if needBigData: upload_url = blobstore.create_upload_url('/upload?pluginversionid=%s'%(pluginVersion.key().id())) data['upload_url']=upload_url data['msg']= u'请上传APK文件。' self.render('template/plugin/pluginUpload2.html',data) else: self.render('template/plugin/pluginUpload.html',data )
def post(self): upload_files = self.get_uploads('file') # 'file' is file upload field in the form if not upload_files: self.response.out.write( json.dumps({'success': False, 'message': u'上传应用图片失败', 'status_code': 200, 'dialog': 1})) return blob_info = upload_files[0] pluginid = self.request.get('pluginid') plugin = Plugin.get_by_id(int(pluginid)) plugin.imagelist.append('%s.%s' % (str(blob_info.key()), blob_info.filename.split('.')[-1])) plugin.put() self.response.out.write(json.dumps( {'success': True, 'result': '%s.%s' % (str(blob_info.key()), blob_info.filename.split('.')[-1]), 'message': u'上传应用图片成功', 'status_code': 200, 'dialog': 1}))
def post(self, *args): pluginid = self.request.get('pluginid') updatedesc = self.request.get('updatedesc') if not pluginid: self.getResult(False, u'请选择应用。', None) return else: plugin = Plugin.get_by_id(int(pluginid)) plugin.updatedesc = updatedesc plugin.put() upload_url = blobstore.create_upload_url('/upload?pluginid=%s' % (plugin.key().id())) self.getResult(True, u'保存应用成功', {"pluginid": plugin.key().id(), 'upload_url': upload_url})
def get(self, *args): user = get_current_user(self) l = [] count = 0 query = [] cachename = '' if user.get('auth') == 'admin': page = int(self.request.get('page', '0')) kind = self.request.get('kind', '') cachename = 'applist_%s_%s' % (kind, page) cacheresult = memcache.get(cachename) if cacheresult: self.flush(cacheresult) return if kind: query = Plugin.all().order('index_time') query = query.filter('kindids =', int(kind)) count = query.count() else: query = Plugin.all().order('__key__') count = PluginCount.getPluginCount() if not page: query = query.fetch(30) else: query = query.fetch(30, 30 * page) if user.get('auth') == 'user': cachename = 'user_applist_%s' % (user.get('username')) cacheresult = memcache.get(cachename) if cacheresult: self.flush(cacheresult) return query = Plugin.all().filter('username ='******'username')).order('__key__') count = query.count() self.plugin_dict(l, count, query, cachename)
def post(self): upload_files = self.get_uploads('file') # 'file' is file upload field in the form if not upload_files: self.response.out.write( json.dumps({'success': False, 'message': u'上传图标失败', 'status_code': 200, 'dialog': 1})) return blob_info = upload_files[0] pluginid = self.request.get('pluginid') plugin = Plugin.get_by_id(int(pluginid)) if plugin.imageid: b = BlobInfo.get(plugin.imageid.split('.')[0]) if b: b.delete() plugin.imageid = '%s.%s' % (str(blob_info.key()), blob_info.filename.split('.')[-1]) plugin.put() self.response.out.write(json.dumps({'success': True, 'message': u'上传图标成功', 'status_code': 200, 'dialog': 1}))
def post(self): imgid=self.request.get("imagekey", '') filename = str(urllib.unquote(imgid)) pluginid = self.request.get('pluginid') plugin = Plugin.get_by_id(int(pluginid)) imgid = imgid.split('.')[0] if filename in plugin.imagelist: plugin.imagelist.remove(filename) plugin.put() img = BlobInfo.get(imgid) if img: img.delete() self.getResult(True, u'图片删除成功', None) return self.getResult(False, u'图片删除失败', None)
def post(self): upload_files = self.get_uploads('file') # 'file' is file upload field in the form if not upload_files: self.response.out.write( json.dumps({'success': False, 'message': u'上传APK失败', 'status_code': 200, 'dialog': 1})) return blob_info = upload_files[0] pluginid = self.request.get('pluginid') plugin = Plugin.get_by_id(int(pluginid)) if plugin.apkkey: b = BlobInfo.get(plugin.apkkey) if b: b.delete() plugin.apkkey = str(blob_info.key()) plugin.apkverson += 1 plugin.type_status = 1 plugin.put() self.response.out.write(json.dumps({'success': True, 'message': u'上传APK成功', 'status_code': 200, 'dialog': 1}))
def post(self): pluginids = self.request.get('pluginids','') import hashlib cachename = hashlib.md5(pluginids).hexdigest().upper() cacheresult = memcache.get(cachename) if cacheresult: self.flush(cacheresult) return pluginids = pluginids.split(',') ids = [] for i in pluginids: try: ids.append(int(i)) except: pass query = Plugin.get_by_id(ids) count = len(ids) l = [] self.plugin_dict(l, count, query, cachename)
def get(self): pid = self.request.get('pluginid', None) if pid: p = Plugin.get_by_id(int(pid)) pvid = self.request.get('id', None) if not pvid: pvlist = PluginVersion.all().filter('plugin =', int(pid)).order('-versionnum').fetch(1) if len(pvlist): pvid = pvlist[0].key().id() if pvid: pv = PluginVersion.get_by_id(int(pvid)) if pv: if pv.datakey: self.redirect('/serve/%s' % pv.datakey) return self.response.headers['Content-Type'] = 'application/octet-stream' self.response.headers['Content-Length'] = pv.size self.response.out.write(pv.data) return self.error(404)
def jsonStrNotice(noticelist): nlist = [] for notice in noticelist: n = {'title': notice.title, 'id': notice.key().id(), 'content': [], 'isdel': notice.isdel, 'type': notice.type, 'lastUpdateTime': notice.lastUpdateTime.strftime('%Y-%m-%d %H:%M'), 'startdate': notice.startdate.strftime('%Y-%m-%d %H:%M'), 'enddate': notice.enddate.strftime('%Y-%m-%d %H:%M')} if notice.type == 1: for c in notice.content: n['content'].append(json.loads(c)) if notice.type == 2 and notice.plugin: plugin = Plugin.get_by_id(notice.plugin) n['pluginappcode'] = plugin.appcode n['content'].append({'content': plugin.desc, 'type': 'text'}) n['content'].append({'content': plugin.updatedesc, 'type': 'text'}) for imgid in plugin.imagelist: n['content'].append( {'type': 'img', 'imgid': imgid, 'url': '%s/download/%s' % (WEBURL, imgid)}) nlist.append(n) return nlist
def jsonStrNotice(noticelist): nlist=[] for notice in noticelist: n={'title':notice.title, 'id':notice.key().id(),'content':[], 'isdel':notice.isdel, 'type':notice.type, 'lastUpdateTime':notice.lastUpdateTime.strftime('%Y-%m-%d %H:%M'), 'startdate':notice.startdate.strftime('%Y-%m-%d %H:%M'),'enddate':notice.enddate.strftime('%Y-%m-%d %H:%M')} if notice.type==1: for c in notice.content: n['content'].append(json.loads(c)) if notice.type==2 and notice.plugin: plugin=Plugin.get_by_id(notice.plugin) n['pluginappcode']=plugin.appcode n['content'].append({'content':plugin.desc, 'type':'text'}) pluginVersionList=PluginVersion.all().filter('plugin =',plugin.key().id()).order('-versionnum').fetch(1) if len(pluginVersionList): pluginVersion=pluginVersionList[0] n['content'].append({'content':pluginVersion.updateDesc, 'type':'text'}) n['pluginimg']=notice.pluginimg for imgid in pluginVersion.imageids: n['content'].append({'type': 'img', 'imgid': imgid, 'url': '%s/download?image_id=%s' % (WEBURL, imgid)}) nlist.append(n) return nlist
def post(self): noteupdate = datetime.datetime.utcnow() + timezone id = self.request.get('id', None) name = self.request.get('name', None) # kind = self.request.get('kind', None) # kinds = [] # if kind: # kinds = kind.split() code = self.request.get('code', None) appcode = self.request.get('appcode', None) desc = self.request.get('desc', None) if id: plugin = Plugin.get_by_id(int(id)) else: plugin = Plugin() plugin.name = name # plugin.kinds = kinds plugin.code = code plugin.appcode = appcode plugin.desc = desc plugin.lastUpdateTime = noteupdate if not id and 0 < Plugin.all().filter('appcode =', appcode).count(): self.render('template/plugin/pluginUpdate.html', {'plugin': plugin, 'id': id, 'result': 'warning', 'msg': u'插件包名已经存在。'}) return plugin.put() self.render('template/plugin/pluginUpdate.html', {'plugin': plugin, 'id': plugin.key().id(), 'result': 'succeed', 'msg': u'修改成功。'})
def get(self): pluginList = Plugin.all().filter('isdel =', False).order('-date') self.render('template/plugin/pluginList.html', {'pluginList': pluginList})
def post(self): noteupdate = datetime.datetime.utcnow() + timezone id = self.request.get('id', None) title = self.request.get('title', None) indexs = self.request.get('index', '').split(',') type = self.request.get('type', None) pluginid = self.request.get('plugin', None) pluginimg = self.request.get('pluginimg', None) startdate = self.request.get('startdate', None) enddate = self.request.get('enddate', None) plugin = None if type == '2' and pluginid: plugin = Plugin.get_by_id(int(pluginid)) if id: notice = Notice.get_by_id(int(id)) notice.content=[] else: notice = Notice() if plugin: notice.plugin=plugin.key().id() notice.pluginimg=int(pluginimg) notice.title = title notice.startdate=datetime.datetime.strptime(startdate+' 00:00:00','%Y-%m-%d %H:%M:%S') notice.enddate=datetime.datetime.strptime(enddate+' 23:59:59','%Y-%m-%d %H:%M:%S') for inputname in indexs: content = self.request.POST.get(inputname, '') if content != '' and content != u'' and content != None: if inputname.find('image') == 0: # imgfield = self.request.POST.get(inputname) if content != '' and content != u'' and content != None: if isinstance(content,unicode): try: content=int(content) notice.content.append(json.dumps({'type': 'img', 'imgid': content, 'url': '%s/download?image_id=%s' % (WEBURL, content)})) continue except: pass elif content.type.lower() not in ['image/pjpeg', 'image/x-png', 'image/jpeg', 'image/png', 'image/gif', 'image/jpg']: continue imgfile = Images() imgfile.filename = content.filename imgfile.filetype = content.type imgfile.data = db.Blob(content.file.read()) imgfile.size = content.bufsize imgfile.put() notice.content.append(json.dumps({'type': 'img', 'imgid': imgfile.key().id(), 'url': '%s/download?image_id=%s' % (WEBURL, imgfile.key().id())})) if inputname.find('content') == 0: notice.content.append(json.dumps({'type': 'text', 'content': content})) notice.type = int(type) notice.lastUpdateTime = noteupdate notice.put() deleteNoticeMemcache() noticeconten=[] for item in notice.content: noticeconten.append(json.loads(item)) pluginList = Plugin.all().filter('isdel =', False).order('-lastUpdateTime') self.render('template/notice/noticeUpdate.html', {'notice': notice,'noteupdate':noteupdate, 'noticecontent':noticeconten, 'id': notice.key().id(), 'pluginList': pluginList, 'result': 'succeed', 'msg': u'修改成功。'})