index.py 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. #!/usr/bin/python
  2. # -*- coding: utf-8 -*-
  3. from flask import Flask, render_template, request, redirect, jsonify, json, Markup
  4. import os
  5. from pymongo import MongoClient
  6. from bson.objectid import ObjectId
  7. #from json import dumps
  8. import json
  9. def connect():
  10. connection = MongoClient("10.0.1.10", 27017,connectTimeoutMS=10000)
  11. #connection = MongoClient("127.0.0.1", 27017,connectTimeoutMS=10000)
  12. handle = connection["dpTapeDB"]
  13. handle.authenticate("gui", "GahN7chi")
  14. return handle
  15. app = Flask(__name__)
  16. handle = connect()
  17. def my_json_escape(data):
  18. data2 =[]
  19. for row in data:
  20. row2={}
  21. for key,value in row.iteritems():
  22. row2[key] = unicode(value).replace(u'\x22',u'\x5C\x22')
  23. #u'\xe4'
  24. data2.append(row2)
  25. return data2
  26. @app.route("/index", methods=['GET'])
  27. @app.route("/", methods=['GET'])
  28. def index():
  29. #results = [x for x in handle.digilst.find()[0:5]]
  30. return render_template('index.html')
  31. #, results=results)
  32. @app.route("/index_old", methods=['GET'])
  33. def index_old():
  34. results = [x for x in handle.digilst.find()[0:2]]
  35. return render_template('index_old.html', results=my_json_escape(results))
  36. @app.route("/loaddata", methods=['GET'])
  37. def loaddata():
  38. results = [x for x in handle.digilst.find()]
  39. return render_template('data.json', results=my_json_escape(results))
  40. @app.route("/load", methods=['GET'])
  41. def load():
  42. results = [x for x in handle.digilst.find()[0:10]]
  43. return json.dumps(results)
  44. @app.route("/insert", methods=['GET'])
  45. def insert():
  46. return render_template("insert.html")
  47. @app.route("/update", methods=['GET'])
  48. def update():
  49. return render_template("update.html")
  50. @app.route("/delete", methods=['GET'])
  51. def delete():
  52. return render_template("delete.html")
  53. @app.route("/write_insert", methods=['POST'])
  54. def write_insert():
  55. date = request.form.get("date")
  56. date2 = request.form.get("date2")
  57. titel = request.form.get("titel")
  58. languages = request.form.get("languages")
  59. country = request.form.get("country")
  60. city = request.form.get("city")
  61. place = request.form.get("place")
  62. category = request.form.get("category")
  63. duration = request.form.get("duration")
  64. location = request.form.get("location")
  65. format = request.form.get("format")
  66. note = request.form.get("note")
  67. status = request.form.get("status")
  68. handle.digilst.insert({"Date": date, "Date2": date2,
  69. "Titel": titel, "Languages": languages,
  70. "Country": country, "City": city, "Place": place,
  71. "Category": category, "Duration": duration,
  72. "Location": location, "Format": format,
  73. "Note": note, "Status": status})
  74. return render_template("ok.txt")
  75. @app.route("/write_update", methods=['POST'])
  76. def write_update():
  77. mongoid = ObjectId(request.form.get("mongoid"))
  78. field = request.form.get("field")
  79. value = request.form.get("value")
  80. result = handle.digilst.update({"_id": mongoid}, {"$set": {field: value}}, upsert=False)
  81. #print ("tried to update " + field + " with "+ value +" got this result: " + str(result) )
  82. if result.get('nModified') == 1:
  83. return str('ok')
  84. else:
  85. return str('error')
  86. @app.route("/write_delete", methods=['POST'])
  87. def write_delete():
  88. mongoid = ObjectId(request.form.get("mongoid"))
  89. handle.digilst.remove({"_id": mongoid})
  90. return render_template("ok.txt")
  91. if __name__ == '__main__':
  92. port = int(os.environ.get('PORT', 5000))
  93. app.run(host='0.0.0.0', port=port, debug=True)