48 lines
1.4 KiB
Python
Executable File
48 lines
1.4 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
from flask_api import FlaskAPI
|
|
from flask import Flask, request, send_file
|
|
from docx_replacement import docx_replace_regex, load_document
|
|
from xlsx_replacement import XlsxReplacement
|
|
from io import BytesIO
|
|
|
|
# app = FlaskAPI(__name__)
|
|
app = Flask(__name__)
|
|
|
|
|
|
@app.route('/docx-test/docx_replace', methods=['POST'])
|
|
def test_upload():
|
|
if request.files is None or len(request.files) == 0:
|
|
raise ValueError("Files required!")
|
|
|
|
if 'xlsx' not in request.files or 'docx' not in request.files:
|
|
raise ValueError('Missing xlsx or docx')
|
|
|
|
xlsx = XlsxReplacement(request.files['xlsx'])
|
|
docx = load_document(request.files['docx'])
|
|
|
|
docx_replace_regex(docx, xlsx)
|
|
|
|
bio = BytesIO()
|
|
docx.save(bio)
|
|
bio.seek(0)
|
|
return send_file(bio, mimetype='application/vnd.openxmlformats-officedocument.wordprocessingml.document',
|
|
attachment_filename=request.files['docx'].filename)
|
|
|
|
|
|
@app.route('/docx-test/testpage')
|
|
def test_page():
|
|
return """
|
|
<html><body>
|
|
<form action="/docx-test/docx_replace" method="post" enctype="multipart/form-data">
|
|
<label>Select DOCX
|
|
<input type="file" name="docx" id="docx"></label>
|
|
<label>Select XLSX
|
|
<input type="file" name="xlsx" id="xlsx"></label>
|
|
<input type="submit" value="Upload" name="submit">
|
|
</form>
|
|
</body></html>"""
|
|
|
|
|
|
if __name__ == '__main__':
|
|
app.run('0.0.0.0', 1212)
|