Загрузить файл и отправить - PullRequest
0 голосов
/ 08 января 2019

Попытка использовать пример загрузки 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>

Попытка заставить кнопку загрузки работать одним щелчком мыши и кнопку отправки, чтобы остаться на странице.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...