Форум сайта python.su
Есть группа файлов:
index.html
page1.html
page1.js
page1.svg
page2.html
page2.js
page2.svg
…
pageN.html
pageN.js
pageN.svg
Храню все файлы в папке templates
В .js файлах есть вызов файла, который в определенном месте читает данные и возвращает json:
var xhr = new XMLHttpRequest(); ... function setPost() { xhr.open("POST", '/home/ioprst/work/app/tmp/get_data.py', true) ... }
from flask import Flask from flask import render_template from flask import send_file app = Flask(__name__) @app.route("/") def index(): return send_file('templates/index.html') @app.route("/<fname>", methods=['GET']) def page(fname): return send_file('templates/' + fname) if __name__ == "__main__": app.run(host='0.0.0.0')
Отредактировано ioprst (Ноя. 7, 2018 08:29:13)
Офлайн
может потому что шлете ГЕТ а файл вызывает ПОСТ?
И почему бы просто не написать функцию в самом фласке и отказался от дергания файлов js ?
Офлайн
ZerG, не совсем. Просто не описал для Flask как обработать запрос js.
Решено:
xhr.open("POST", '/get-data', true)
from get_data import get_data @app.route('/get-data', methods=['POST']) def get(): data = request.get_data().decode('utf-8') return get_data(data)
Отредактировано ioprst (Ноя. 13, 2018 12:31:58)
Офлайн
Все же заинтриговали
И почему бы просто не написать функцию в самом фласке и отказался от дергания файлов js ?
Офлайн
ZerG,
1) JS управляет простой анимацией SVG (на мой взгляд там это довольно удобно через Element.setAttribute(), get…).
2) JS каждый раз разный (генерируется) => менять каждый раз метод фласка совсем не подходит.
Отредактировано ioprst (Ноя. 15, 2018 15:46:28)
Офлайн