Ver Fonte

index.py: handle updates deletes, ...

Maximilian Ronniger há 10 anos atrás
pai
commit
e2a7955073
1 ficheiros alterados com 21 adições e 8 exclusões
  1. 21 8
      src/index.py

+ 21 - 8
src/index.py

@@ -1,5 +1,6 @@
 #!/usr/bin/python
-from flask import Flask, render_template, request, redirect
+# -*- coding: utf-8 -*-
+from flask import Flask, render_template, request, redirect, jsonify, json, Markup
 import os
 from pymongo import MongoClient
 from bson.objectid import ObjectId
@@ -16,6 +17,15 @@ def connect():
 app = Flask(__name__)
 handle = connect()
 
+def my_json_escape(data):
+    data2 =[]
+    for row in data:
+        row2={}
+        for key,value in row.iteritems():
+            row2[key] = unicode(value).replace(u'\x22',u'\x5C\x22')
+            #u'\xe4'
+        data2.append(row2)
+    return data2
 
 @app.route("/index", methods=['GET'])
 @app.route("/", methods=['GET'])
@@ -26,13 +36,13 @@ def index():
 
 @app.route("/index_old", methods=['GET'])
 def index_old():
-    results = [x for x in handle.digilst.find()[0:5]]
-    return render_template('index_old.html', results=results)
+    results = [x for x in handle.digilst.find()[0:2]]
+    return render_template('index_old.html', results=my_json_escape(results))
 
 @app.route("/loaddata", methods=['GET'])
 def loaddata():
-    results = [x for x in handle.digilst.find()[0:100]]
-    return render_template('data.json', results=results)
+    results = [x for x in handle.digilst.find()]
+    return render_template('data.json', results=my_json_escape(results))
 
 @app.route("/load", methods=['GET'])
 def load():
@@ -83,9 +93,12 @@ def write_update():
     mongoid = ObjectId(request.form.get("mongoid"))
     field = request.form.get("field")
     value = request.form.get("value")
-    handle.digilst.update({"_id": mongoid}, {"$set": {field: value}}, upsert=False)
-    return render_template("ok.txt")
-
+    result = handle.digilst.update({"_id": mongoid}, {"$set": {field: value}}, upsert=False)
+    #print ("tried to update " + field + " with "+ value +" got this result: " + str(result) )
+    if result.get('nModified') == 1:
+		return str('ok')
+    else:
+		return str('error')
 
 @app.route("/write_delete", methods=['POST'])
 def write_delete():