-
Notifications
You must be signed in to change notification settings - Fork 0
/
app.py
58 lines (42 loc) · 1.59 KB
/
app.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
import os
import json
from rdflib import Graph
from flask import Flask, jsonify, render_template, request
################################################################################
# Init
################################################################################
app = Flask(__name__)
################################################################################
# Store SVG temporary
################################################################################
@app.route('/parse', methods = ['POST'])
def parseData():
# store post data
p_svg = request.form['svg']
# save svg as file
f = open('tmp.svg','w')
f.write(p_svg) # python will convert \n to os.linesep
f.close()
return 'parsed'
################################################################################
# Query SVG
################################################################################
@app.route('/query', methods = ['POST'])
def queryData():
# store post data
p_query = request.form['query']
g = Graph()
g.parse('tmp.svg', format = 'rdfa')
rows = g.query(p_query)
return rows.serialize(format = "json")
################################################################################
# Serve index file
################################################################################
@app.route('/', methods = ['GET'])
def index():
return render_template('index.html')
################################################################################
# Start app
################################################################################
if __name__ == '__main__':
app.run()