我想做的主要目标是用json中的数据更新mongodb数据库(这是我正在使用的采集卡数据库的魔力)。在本地运行时,它可以正常工作。在线运行时,它不起作用,并且出现此502错误
这是我通过按钮调用的javascript函数
$(function() { $('.test').live('click', 'button', function()
{
name = $(this).prev().val();
console.log(name);
(
$.ajax({
url: "/test",
data: {"name":name},
type: 'POST',
success: function(response) {
$('.divteste').empty();
$('.divteste').append(response);
},
error: function(error) {
console.log('err');
console.log(error);
$('.divteste').append(error);
}
})
)})});
这是对应的python路由
@app.route('/test', methods=['POST']) #
def test():
pos=[]
string=reescreve()
return '..'
这是应该执行的主要内容
def processa(name,lista,layout): # checks whether the card is already exists in the database. if it does, updates it with further information if necessary.
temp=[]
temp2=[]
temp.append(lista)
num=CARDS_COLLECTION.find({"functionalname":name.lower()}).count() ### checks if MTG card already exists in my database
if num==0:
CARDS_COLLECTION.insert({"functionalname":name.lower(),"name":name, "layout":layout, "address":temp})
elif num>0: ### if it does, it might be necessary to add another set, i.e., another edition in which that card was printed to the document.
temp3=[]
query=CARDS_COLLECTION.find({"functionalname":name.lower()})
for k in query:
for j in k['address']:
temp3.append(j[0])
if lista[0] not in temp3:
CARDS_COLLECTION.update({"functionalname":name.lower()},{'$addToSet': {'address': lista } })
return ('',204)
def reescreve():
CARDS_COLLECTION=MongoClient()['lista']['Cards']
CARDS_COLLECTION.remove()
content = json.loads(open("cards.json").read())
for j in content:
try:
print j['name']
if j['layout']=='normal' and j['digital']==False and j['set_type']!='memorabilia':
url=str(j['image_uris']['normal'])
final=url[url.find('normal')+6:]
final=final[0:final.find("?")]
processa(j['name'],[j['set'],j['set_name'],final],j['layout'])
except:
return 'fail2'
return ('',204)
ps:在线运行时,我永远不会在页面上打印此“完成”,而在本地运行时,是