Попытка использовать пример загрузки flask-sijax для загрузки файла, а затем отправить его, но кнопка отправки продолжает удаляться из-за рендеринга upload.html. Какой лучший способ обойти это?
В настоящее время для запуска необходимо дважды нажать кнопку загрузки, после чего код создаст кнопку отправки, но при нажатии кнопки отправки происходит рендеринг файла upload.html, в результате которого кнопка отправки будет удалена
upload.py
import os, sys
path = os.path.join('.', os.path.dirname(__file__), '../')
sys.path.append(path)
from flask import Flask, g, render_template, request
import flask_sijax
app = Flask(__name__)
app.config["SIJAX_STATIC_PATH"] = os.path.join('.',
os.path.dirname(__file__), 'static/js/sijax/')
app.config["SIJAX_JSON_URI"] = '/static/js/sijax/json2.js'
flask_sijax.Sijax(app)
class SijaxHandler(object):
@staticmethod
def form_one_handler(obj_response, files, form_values):
print("one")
obj_response.html_append('#formOneResponse', """
<div style="float: left; width: 450px">
<form id="formTwo" name="formTwo" style="width: 400px"
method="post" enctype="multipart/form-data">
Everything checks out
<input type="submit" value="submit" name="two"/>
</form>
<div id="formTwoResponse"></div>
</div>
""")
@staticmethod
def form_two_handler(obj_response, files, form_values):
print("two")
obj_response.html_append('#formTwoResponse', '<br />Finished!')
@flask_sijax.route(app, "/", methods=['GET','POST'])
def index():
form_init_js = ''
if request.method =='POST':
if request.form.get('one') == 'Upload':
print("upload")
form_init_js += g.sijax.register_upload_callback('formOne', SijaxHandler.form_one_handler)
elif request.form.get('two') == 'submit':
print("submit")
form_init_js += g.sijax.register_upload_callback('formTwo', SijaxHandler.form_two_handler)
if g.sijax.is_sijax_request:
# The request looks like a valid Sijax request
# The handlers are already registered above.. we can process the request
return g.sijax.process_request()
return render_template('upload.html', form_init_js=form_init_js)
if __name__ == '__main__':
app.run(debug=True, port=8080)
upload.html
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"> </script>
<script type="text/javascript" src="/static/js/sijax/sijax.js"></script>
<script type="text/javascript" src="/static/js/sijax/sijax_upload.js"></script>
<script type="text/javascript">
{{ g.sijax.get_js()|safe }}
{{ form_init_js|safe }}
</script>
</head>
<body>
<div style="float: left; width: 450px">
<form id="formOne" name="formOne" style="width: 400px" method="post" enctype="multipart/form-data">
<input type="submit" value="Upload" name="one"/>
</form>
<div id="formOneResponse"></div>
</div>
</form>
</body>
</html>
Попытка заставить кнопку загрузки работать одним щелчком мыши и кнопку отправки, чтобы остаться на странице.