def post(self): """ 验证打开病历填写页面的人的身份 :return: """ process_id = request.jsondata.get("process_id") patient_medical_id = request.jsondata.get("patient_medical_id") doctor_id = request.jsondata.get("doctor_id") patient_id = request.jsondata.get("patient_id") patient_medical = Query(PatientMedical).get(patient_medical_id) if doctor_id != -1: if patient_medical.get("receive_doctor_id") != doctor_id: abort(403, message=u"token和主治医生不是同一人") if patient_id != -1: if patient_medical.get("patient_id") != patient_id: abort(403, message=u"open_id和患者不是同一人") processes = json.loads(patient_medical.get("processes_json")) for process in processes: if process.get("process_id") == process_id: return {} else: abort(400, message=u"过程和病历不匹配")
def get(self, process_id): """ 获取过程 如果给了用户病历id,则获取填写过的那个最新的过程 :param process_id: :return: """ patient_medical_id = request.args.get("patient_medical_id") if not patient_medical_id: process = Query(MedicalProcess).get(process_id) return process else: patient_medical = Query(PatientMedical).get(patient_medical_id) processes = json.loads(patient_medical.get("processes_json")) for process in processes: if process.get("process_id") == process_id: head = process.get("head") if not head: process = Query(MedicalProcess).get(process_id) return process else: process = json.loads(Query(PatientMedicalProcess).get(head).get("result_json")) return process else: abort(404)
def catit(): request_cat_ids = request.form['cats'].split(',') photoid = request.form['photoid'] photo = Query(Photo).get(photoid) print photo.get('name') cat_relation = photo.relation('category') previousCats = cat_relation.query().find() # Remove previous category for cat in previousCats: cat_relation.remove(cat) # Set new category for catid in request_cat_ids: cat = Query(Category).get(catid) print cat.get('name') if cat: cat_relation.add(cat) # photo.set('featured', True if (featured == 'true') else False) photo.save() alreadyCategorizedCount = Query.do_cloud_query('select count(*) from Photo where category != null').count return json.dumps({'status':'OK', 'count': alreadyCategorizedCount, 'photoid': photoid});
def generateCard(id): try: card = Query(Card).get(id) tid = card.get('temlate') if (card.get('photo') is None): msstream = BytesIO() if tid == 1: template(card, msstream) elif tid == 2: template2(card, msstream) elif tid == 3: template3(card, msstream) elif tid == 4: template4(card, msstream) else: template(card, msstream) url = os.environ["QINIU_ACCESS_URL"] access_key = os.environ["QINIU_ACCESS_KEY"] secret_key = os.environ["QINIU_SECRET_KEY"] #构建鉴权对象 q = Auth(access_key, secret_key) #要上传的空间 bucket_name = 'card' key = card.get('objectId') token = q.upload_token(bucket_name) ret, info = put_data(token, key, msstream.getvalue()) if (info.ok()): metaData = {'owner': card.get('username')} photo = Photo() photo.set('mine_type', 'image/jpeg') photo.set('key', key) photo.set('name', key) photo.set('url', url + '/' + key) photo.set('provider', 'qiniu') photo.set('metaData', metaData) photo.set('bucket', bucket_name) photo.save() update = Card.create_without_data(id) user = _User.create_without_data('590be679ac502e006cdc63c0') update.set('user', user) update.set('username', '569dil3zuypnrpjqwe97l3qkw') update.set('photo', photo) update.save() return 'ok' else: return 'failed' else: return 'already' except LeanCloudError as e: if e.code == 101: # 服务端对应的 Class 还没创建 card = '' return 'no class' else: raise e return 'error'
def manage_blog_edit(blog_id): blog = Query(Blog).get(blog_id) if blog is None: raise notfound() return render_template('manage_blog_edit.html', id=blog.id, name=blog.get('name'), summary=blog.get('summary'), content=blog.get('content'), action='/blog/%s/update' % blog_id, redirect='/manage/blogs', user=None)
def generate(request, id): try: card = Query(Card).get(id) tid = card.get('template') if (card.get('photo') is None): msstream = BytesIO() if tid == 1: template(card, msstream) elif tid == 2: template2(card, msstream) elif tid == 3: template3(card, msstream) elif tid == 4: template4(card, msstream) else: template(card, msstream) url = os.environ["QINIU_ACCESS_URL"] access_key = os.environ["QINIU_ACCESS_KEY"] secret_key = os.environ["QINIU_SECRET_KEY"] #构建鉴权对象 q = Auth(access_key, secret_key) #要上传的空间 bucket_name = 'card' key = card.get('objectId') token = q.upload_token(bucket_name) ret, info = put_data(token, key, msstream.getvalue()) if (info.ok()): metaData = {'owner': card.get('username')} photo = Photo() photo.set('mine_type', 'image/jpeg') photo.set('key', key) photo.set('name', key) photo.set('url', url + '/' + key) photo.set('provider', 'qiniu') photo.set('metaData', metaData) photo.set('bucket', bucket_name) photo.save() update = Card.create_without_data(id) update.set('photo', photo) update.save() return HttpResponse(json.dumps(ret), content_type="text/plain") else: return HttpResponse('failed', content_type="text/plain") else: return HttpResponse('already', content_type="text/plain") except LeanCloudError as e: if e.code == 101: # 服务端对应的 Class 还没创建 card = '' return HttpResponse(e, content_type="text/plain") else: raise e return HttpResponse(e, content_type="text/plain")
def solve(res_list): for each in res_list: print each.get('ID'), each.get('kind') kind = each.get('kind') post_id = each.id if is_exist(post_id): print 'skip, exist post_id', post_id if kind == 10: # html try: ID = each.get('ID') post_id = each.id query = Query(Post) p = query.get(post_id) title = each.get('title') brief = each.get('brief') html_text = html2txt(each.get('html')) txt = brief + html_text author = each.get('author') if not author: owner_id = each.get('owner').id query = Query(User) owner = query.get(owner_id) author = owner.get('username') create_and_save(post_id, kind, p, ID, author, txt, title) except: print traceback.print_exc() return else: # txt try: pid = each.get('post').id query = Query(Post) p = query.get(pid) #title = p.title ID = p.get('ID') owner_id = each.get('owner').id query = Query(User) owner = query.get(owner_id) author = owner.get('username') txt = each.get('txt') create_and_save(post_id, kind, each.get('post'), ID, author, txt) except: print traceback.print_exc() return
def delete(**params): if 'cid' not in params: return {'code': 301, 'message': '参数错误:卡片ID不存在'} if 'uid' not in params: return {'code': 302, 'message': '参数错误:用户ID不存在'} card_id = params['cid'] user_id = params['uid'] try: query = Query(Card) query.include('user') card = query.get(card_id) if card is not None: user = card.get('user') if user.get('objectId') == user_id: _card = Card.create_without_data(card_id) _card.set('hidden', True) _card.save() return {'code': 200, 'message': 'ok'} else: result = {'code': 401, 'message': '没有权限'} return result else: result = {'code': 400, 'message': '卡片不存在'} return result except LeanCloudError as e: result = {'code': e.code, 'message': e.error} return result
def add(): try: key_data = request.json['key'] ch2o_data= request.json['ch2o'] tem_data = request.json['tem'] hum_data = request.json['hum'] noi_data = request.json['noise'] pm_data = request.json['pm'] except: return jsonify(error='json') query = Query(DeviceKey) try: device=query.get(key_data) index = device.get('index') name = device.get('name') print 'Add Data',index,name control(index,pm_data) test_data = test_esp(ch2o=ch2o_data, t=tem_data, h=hum_data, noise=noi_data, pm=pm_data, key=key_data,name=name,index =index) try: test_data.save() except: return jsonify(error='save') upload_time =datetime.now().strftime('%Y-%m-%d %H:%M:%S') device.set('uploadtime',upload_time) try: device.save() print index,'save at',upload_time except: return jsonify(error ='staus save error') return jsonify(status ='succeed') except: return jsonify(error = 'key')
def consume(self): queue = SQS() rs = queue.read() print 'Start consuming:' for record in rs: mailId = record.get_body() print mailId Timer = Object.extend('Timer') timerQuery = Query(Timer) timerQuery.equal_to('mailId', mailId) firstTimer = timerQuery.first() if firstTimer.get('status') != 'sent': Mail = Object.extend('Mail') query = Query(Mail) mailObj = query.get(mailId) sender = mailer() mailToSent = { 'to':mailObj.get('to'), 'html':mailObj.get('html'), 'subject':mailObj.get('subject') } sender.send(mailToSent) firstTimer.set('status','sent') firstTimer.save() queue.remove(record) return self;
def post(self, process_id): patient_medical_id = request.jsondata.get("patient_medical_id") result_json = request.jsondata.get("result_json") creater_id = request.jsondata.get("creater_id") patient_medical = Query(PatientMedical).get(patient_medical_id) processes = json.loads(patient_medical.get("processes_json")) for index, process in enumerate(processes): if process.get("process_id") == process_id: medical_process = Query(MedicalProcess).get(process_id) patient_medical_process = PatientMedicalProcess() patient_medical_process.set("patient_medical", patient_medical) patient_medical_process.set("result_json", result_json) patient_medical_process.set("process", medical_process) patient_medical_process.set("creater_id", creater_id) patient_medical_process.save() process["head"] = patient_medical_process.id patient_medical.set("processes_json", json.dumps(processes)) patient_medical.save() # 如果是第0个,说明是填写的第一个过程,要去除第一张卡片的第一项作为患者需求 if index == 0: patient_requirement = json.loads(result_json).get("cards")[0].get("items")[0].get("value") patient_medical.set("patient_requirement", patient_requirement) patient_medical.save() return {} else: abort(404, message="不匹配")
def test_basic_query(): # find q = Query(GameScore) results = q.find() eq_(len(results), 10) # first q = Query(GameScore) game_score = q.first() assert game_score # get q = Query(GameScore) local_game_score = game_scores[0] q.get(local_game_score.id) # count q = Query(GameScore) eq_(q.count(), 10) # descending q = Query(GameScore).descending('score') eq_([x.get('score') for x in q.find()], range(9, -1, -1)) # greater_than q = Query(GameScore).greater_than('score', 5).ascending('score') eq_([x.get('score') for x in q.find()], range(6, 10)) q = Query(GameScore).greater_than_or_equal_to('score', 5).ascending('score') eq_([x.get('score') for x in q.find()], range(5, 10)) q = Query(GameScore).less_than('score', 5).ascending('score') eq_([x.get('score') for x in q.find()], range(0, 5)) q = Query(GameScore).less_than_or_equal_to('score', 5).ascending('score') eq_([x.get('score') for x in q.find()], range(0, 6)) q = Query(GameScore).contained_in('score', [1, 2, 3]).ascending('score') eq_([x.get('score') for x in q.find()], range(1, 4)) q = Query(GameScore).not_contained_in('score', [0, 1, 2, 3]).ascending('score') eq_([x.get('score') for x in q.find()], range(4, 10)) q = Query(GameScore).select('score') assert not q.find()[0].has('playerName')
def editobj(**params): from leancloud import Object TestObject = Object.extend('TestObject') from leancloud import Query query = Query(TestObject) testObject = query.get('557fd90ee4b0d02dc2e3e342') testObject.set('foo', 'edit') testObject.save()
def _get_user(): user = session.get('user') if not user: return github_user = Query(GitHubUser).get(user.get('id')) if not github_user.get('qiniu_ok'): return return github_user
def sub(): try: v2url = Query(V2info).add_descending('createdAt').first() except LeanCloudError as e: print(e) context = None else: context = v2url.get('urls_vmess_paser') return context
def get(self, patient_medical_id): """ 获取患者填写过的过程 获取填写过的最新的过程 :param process_id: :return: """ patient_medical = Query(PatientMedical).get(patient_medical_id) processes = json.loads(patient_medical.get("processes_json")) _processes = [] for process in processes: head = process.get("head") if not head: process = Query(MedicalProcess).get(process.get("process_id")) _processes.append(process) else: process = json.loads(Query(PatientMedicalProcess).get(head).get("result_json")) _processes.append(process) return {"patient_medical": patient_medical, "processes": _processes}
def event(id): try: query = Query('Event') query.include('createdBy') query.include('members') event = query.get(id) except LeanEngineError as e: print(e) raise e return render_template('events.html', event=event)
def test_file_field(): # type: () -> None user = User() user.login("user1_name", "password") user.set("xxxxx", File("xxx.txt", io.BytesIO(b"qqqqq"))) user.save() q = Query(User) saved_user = q.get(user.id) assert isinstance(saved_user.get("xxxxx"), File) assert saved_user.get("xxxxx").name == "xxx.txt"
def test_file_field(): user = User() user.login('user1_name', 'password') user.set('xxxxx', File('xxx.txt', buffer_type(b'qqqqq'))) user.save() q = Query(User) saved_user = q.get(user.id) assert isinstance(saved_user.get('xxxxx'), File) assert saved_user.get('xxxxx').name == 'xxx.txt'
def test_file_field(): user = User() user.login('user1_name', 'password') user.set('xxxxx', File('xxx.txt', buffer('qqqqq'))) user.save() q = Query(User) saved_user = q.get(user.id) assert isinstance(saved_user.get('xxxxx'), File) assert saved_user.get('xxxxx').name == 'xxx.txt'
def test_file_field(): # type: () -> None user = User() user.login('user1_name', 'password') user.set('xxxxx', File('xxx.txt', io.BytesIO(b'qqqqq'))) user.save() q = Query(User) saved_user = q.get(user.id) assert isinstance(saved_user.get('xxxxx'), File) assert saved_user.get('xxxxx').name == 'xxx.txt'
def test(key): query = Query(DeviceKey) device = query.get(key) index = device.get('index') name = device.get('name') print 'Add Data', index, name upload_time = datetime.now().strftime('%Y-%m-%d %H:%M:%S') device.set('uploadtime', upload_time) device.save() print index, 'save at', upload_time return jsonify(status='ok')
def test(key): query = Query(DeviceKey) device=query.get(key) index = device.get('index') name = device.get('name') print 'Add Data',index,name upload_time =datetime.now().strftime('%Y-%m-%d %H:%M:%S') device.set('uploadtime',upload_time) device.save() print index,'save at',upload_time return jsonify(status='ok')
def updateOrder(oid,orderid,charge): try: orderc = Object.extend('order') query = Query(orderc) order = query.get(oid) print 'order=',order if order is not None: order.set("orderid",orderid) order.set("charge",charge) order.save() else: print 'order is none' except Exception,e: print 'e=',e
def processOrder(orderno,ordertype): orderc = Object.extend('order') query = Query(orderc) order = query.get(orderno) print 'order=',order if order is not None: print 'not None' print 'odertype=',ordertype if ordertype == 'charge.succeeded': print 'charge.succeeded ok' order.set("status",1) order.save() else: print 'order is none'
def _receiversOffline(**params): print('_receiversOffline start') print(params) conversation_id = params['convId'] query = Query("_Conversation") conversation = query.get(conversation_id) # if it is system notification skip if conversation.get('sys') == True: print "system notification, skip pushMessage" print('_receiversOffline end') return {'skip': True} else: from_peer = params['fromPeer'] short_content = "" query = Query("_User") query.equal_to('username', from_peer) query_list = query.find() if len(query_list) > 0: short_content = query_list[0].get('nickname') + ": " content = params['content'] mediaType = content[content.find('_lctype') + 9:content.find('_lctype') + 11] if mediaType == "-1": short_content += content[content.find('_lctext') + 10:content.find('_lcattrs') - 3] elif mediaType == "-2": short_content += "[图片]" elif mediaType == "-3": short_content += "[语音信息]" elif mediaType == "-4": short_content += "[视频信息]" elif mediaType == "-5": short_content += "[位置]" elif mediaType == "-6": short_content += "[文件]" print('short_content:', short_content) payloads = { # 自增未读消息的数目,不想自增就设为数字 'badge': 'Increment', 'sound': 'default', # 使用开发证书 '_profile': 'prod', 'alert': short_content, } print('_receiversOffline end') return { 'pushMessage': json.dumps(payloads), }
def ping(key): ping_time = datetime.now().strftime('%Y-%m-%d %H:%M:%S') try: query = Query(DeviceKey) device = query.get(key) index = device.get('index') device.set('ping_time', ping_time) except: return jsonify(error='search error') try: device.save() except: return jsonify(error='save error') print 'device ', index, 'ping @', ping_time return jsonify(index=index, time=ping_time)
def ping(key): ping_time =datetime.now().strftime('%Y-%m-%d %H:%M:%S') try: query = Query(DeviceKey) device=query.get(key) index = device.get('index') device.set('ping_time',ping_time) except: return jsonify(error ='search error') try: device.save() except: return jsonify(error ='save error') print 'device ',index,'ping @',ping_time return jsonify(index=index,time =ping_time)
def answers(): uid = request.cookies.get('uid') qid = request.cookies.get('qid') logger.debug('user id in cookie: ' + str(uid)) wuser = None if uid: try: query = Query(WeUsers) wuser = query.get(uid) except leancloud.LeanCloudError: logger.warning("WeUser not found via uid %s", uid) logger.debug("request data: %s form: %s", request.data, request.form) if wuser and qid: query = Query(Answers) query.equal_to('qid', qid) query.equal_to('userid', uid) answer = None try: answer = query.first() except leancloud.LeanCloudError: logger.debug("Need to create table for answer first") if not answer: answer = Answers() answer.qid = qid answer.userid = uid answer.value = request.form.get('answer') answer.voter = wuser.nickname answer.headimg = wuser.headimgurl answer.save() logger.debug("answered as %s", answer) else: """ check modify answer for question """ logger.debug("already answered %s", answer) answers_query = Query(Answers) answers_query.equal_to('qid', qid) answers = answers_query.find() answer_count = len(answers) return render_template("answers.html", answers=answers, answers_count=answer_count) else: pass answers_query = Query(Answers) answers_query.equal_to('qid', "56def37b8ac2470056ece82d") answers = answers_query.find() answer_count = len(answers) return render_template("answers.html", answers=answers, answers_count=answer_count)
def upload(): try: key_data = request.json['key'] query = Query(DeviceKey) device=query.get(key_data) index = device.get('index') name = device.get('name') print 'upload',index,name except: return jsonify(error = 'key') try: datas = request.json['data'] for data in datas: print 'tem',data['tem'] print 'time',data['time'] except: return jsonify(error = 'json') return jsonify(status ='succeed')
def upload(): try: key_data = request.json['key'] query = Query(DeviceKey) device = query.get(key_data) index = device.get('index') name = device.get('name') print 'upload', index, name except: return jsonify(error='key') try: datas = request.json['data'] for data in datas: print 'tem', data['tem'] print 'time', data['time'] except: return jsonify(error='json') return jsonify(status='succeed')
def set_train_data_trained(object_ids): '''Set poiData column `isTrain` to true during to object_ids Parameters ---------- object_ids: list elems of it are strings represent objectId Returns ------- flag: boolean ''' PoiData = Object.extend('poiData') query = Query(PoiData) for object_id in object_ids: poi_data = query.get(object_id) poi_data.set('isTrain', True) poi_data.save() return True
def add(): try: key_data = request.json['key'] ch2o_data = request.json['ch2o'] tem_data = request.json['tem'] hum_data = request.json['hum'] noi_data = request.json['noise'] pm_data = request.json['pm'] except: return jsonify(error='json') query = Query(DeviceKey) try: device = query.get(key_data) index = device.get('index') name = device.get('name') print 'Add Data', index, name control(index, pm_data) test_data = test_esp(ch2o=ch2o_data, t=tem_data, h=hum_data, noise=noi_data, pm=pm_data, key=key_data, name=name, index=index) try: test_data.save() except: return jsonify(error='save') upload_time = datetime.now().strftime('%Y-%m-%d %H:%M:%S') device.set('uploadtime', upload_time) try: device.save() print index, 'save at', upload_time except: return jsonify(error='staus save error') return jsonify(status='succeed') except: return jsonify(error='key')
def download(request, id): try: card = Query(Card).get(id) tid = card.get('template') msstream = BytesIO() if tid == 1: template(card, msstream) elif tid == 2: template2(card, msstream) elif tid == 3: template3(card, msstream) elif tid == 4: template4(card, msstream) else: template(card, msstream) return HttpResponse(msstream.getvalue(), content_type="image/png") except LeanCloudError as e: if e.code == 101: # 服务端对应的 Class 还没创建 card = '' return HttpResponse(e, content_type="text/plain") else: raise e return HttpResponse(e, content_type="text/plain")
def questions(qid): logger.debug(request.args) uid = request.cookies.get('uid') # uid = request.args.get("uid") logger.debug('user id in cookie: ' + str(uid)) wuser = None # if uid: # try: # query = Query(WeUsers) # wuser = query.get(uid) # except leancloud.LeanCloudError: # logger.warning("WeUser not found via uid %s", uid) if not wuser: wuser = validate_weuser() if wuser: logger.debug("questionnaire with id: %s and %s" % (qid, wuser.nickname)) query = Query(Questionnaires) question = query.get(qid) if question: title = question.title logger.debug(question) answer_query = Query(Answers) answer_query.equal_to('qid', qid) answers = answer_query.find() resp = make_response(render_template('question.html', title=question.title, name=question.creator, qid=qid, question_heading=question.title, question_content=question.description, status=question.status, expired_at=question.expired_at, show_details=question.show_details, answers=answers, answers_count=len(answers))) # setcookie for user id resp.set_cookie('uid', wuser.id) resp.set_cookie('qid', qid) return resp else: return render_template('question.html', title="Unavailable questionnaire", name="No name", qid=qid) else: return render_template('question.html', title="Test", name="No name", qid=qid)
def download(request, id): try: card = Query(Card).get(id) tid = card.get('template') type = card.get('type') msstream = BytesIO() data = { 'copyright': '天天码图', 'author': card.get('author'), 'id': card.id, 'url': card.get('img_url'), 'title': card.get('name'), 'content': card.get('content') } if type == 'movie': Movie.movie(data, msstream) elif type == 'music': Music.music(data, msstream) elif type == 'book': Book.book(data, msstream) else: if tid == 1: template(card, msstream) elif tid == 2: template2(card, msstream) elif tid == 3: template3(card, msstream) elif tid == 4: template4(card, msstream) else: template(card, msstream) return HttpResponse(msstream.getvalue(), content_type="image/png") except LeanCloudError as e: if e.code == 101: # 服务端对应的 Class 还没创建 card = '' return HttpResponse(e, content_type="text/plain") else: raise e return HttpResponse(e, content_type="text/plain")
from leancloud import Object from leancloud import Query leancloud.init('73b6c6p6lgs8s07m6yaq5jeu7e19j3i3x7fdt234ufxw9ity', 'h5lu7ils6mutvirgrxeodo6xfuqcgxh4ny0bdar3utl076cu') queue = SQS() rs = queue.read() for record in rs: print record.get_body() mailId = record.get_body() Timer = Object.extend('Timer') timerQuery = Query(Timer) timerQuery.equal_to('mailId', mailId) firstTimer = timerQuery.first() print firstTimer if firstTimer.get('status') != 'sent': Mail = Object.extend('Mail') query = Query(Mail) mailObj = query.get(mailId) print mailObj sender = mailer() mailToSent = { 'to':mailObj.get('to'), 'html':mailObj.get('html'), 'subject':mailObj.get('subject') } sender.send(mailToSent) firstTimer.set('status','sent') firstTimer.save() queue.remove(record)
def take(cls, id): query = Query(cls) return query.get(id)
def queryOneData(dataId): query = Query(allPictures) pictureItem = query.get(dataId) print pictureItem.get('image_src')
from flask import Flask, render_template, Blueprint from leancloud import Object, Query, LeanCloudError app = Flask(__name__) @app.route('/') def index(): return render_template( 'index.html', content=blogpost.content, title= blogpost.title, post_date=(blogpost.created_at).strftime('%Y.%m.%d') ) #if __name__ == '__main__': # app.debug = True # app.run() class BlogPost(Object): @property def content(self): return self.get('main_body') @property def title(self): return self.get('title') query = Query(BlogPost) blogpost = query.get('562c41f960b2804578347f97') print blogpost.created_at
leancloud.init('9mDg7pW6a3OeJdtafnUvz5a5-gzGzoHsz', 'ca2bfiU3krn4j5WxeS3UEfYC') class GameScore(Object): def is_cheated(self): # 可以像正常 Python 类一样定义方法 return self.get('cheatMode') @property def score(self): # 可以使用property装饰器,方便获取属性 return self.get('score') @score.setter def score(self, value): # 同样的,可以给对象的score增加setter return self.set('score', value) ''' game_score = GameScore() game_score.set('score', 222) # or game_score.score = 42 game_score.set('cheatMode', True) game_score.set('playerName', 'wwwww2w') game_score.save() ''' query = Query(GameScore) game_score = query.get('569f7c667db2a200521e063a') game_score.increment('score', 1) game_score.save() print game_score.get('playerName')
def bushou(self, value): return self.set('bushou', value) @bihua.setter def bihua(self, value): return self.set('bihua', value) @pinyin.setter def pinyin(self, value): return self.set('pinyin', value) @jiben.setter def jiben(self, value): return self.set('jiben', value) @xiangxi.setter def xiangxi(self, value): return self.set('xiangxi', value) @py.setter def py(self, value): return self.set('py', value) @ucode.setter def ucode(self, value): return self.set('ucode', value) from leancloud import Query query = Query(Detail) detail = query.get('55cf129100b042cb01b8a4cc') print detail.get('xiangxi')