from flask import Flask,send_from_directory,request app = Flask(__name__,static_url_path='',static_folder='build') from freespeech_walle.get_morph_rule import get_morph,get_freq import json import codecs import glob import os production = False if os.environ.get('NODE_ENV','') == 'development' else True xmlDir = 'build/' if production else 'public/' @app.route('/') def walle_index(): return app.send_static_file('index.html') @app.route('/api/morph') def walle_morph(): word = request.args.get('word','water') pos_req = request.args.get('pos','N') pos = pos_req if pos_req != '' else 'N'; return json.dumps(get_morph(word,pos)) @app.route('/api/save',methods=['POST']) def walle_save(): xmlData = request.form.get('file',None); xmlFileName = request.form.get('name','new_es_saved.xml'); if xmlData: with codecs.open(xmlDir+xmlFileName,'wb','utf-8') as xmlF: print("saved as ",xmlFileName) xmlF.write(xmlData); return 'ok' @app.route('/api/xmlfiles') def walle_xmlfiles(): xml_files = map(os.path.basename,glob.glob(xmlDir+'*.xml')) return json.dumps(xml_files) # from flask_cors import CORS, cross_origin # CORS(app) # hmr streaming # import requests # from flask import Response,stream_with_context # @app.route('/',methods=['GET','POST']) # def walle_hmr(url): # webpack_server = 'http://localhost:3000/' # req = requests.get(webpack_server+url, stream = True) # return Response(stream_with_context(req.iter_content())) if __name__ == '__main__': app.run(debug=True)