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 = True if os.environ.get('NODE_ENV','') == 'production' else False xmlDir = 'public/' if production else 'build/' # from flask_cors import CORS, cross_origin # CORS(app) # @app.route('/') # def walle_index(): # return app.send_static_file('index.html') # @app.route('/api/test') # def walle_test(): # return "test" @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) # 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)