首页 > 解决方案 > jQuery 进度条给出内部服务器错误

问题描述

这是运行进度条的网页。目前,程序栏正在运行,但没有移动到下一页。

我收到此错误:

内部服务器错误
服务器遇到内部错误,无法完成您的请求。服务器过载或应用程序出错。

我搜索了此错误消息,但没有适当的解决方案。

出事了吗?

在此处输入图像描述

在此处输入图像描述

from flask import Flask, render_template, request
from maratang import search


    app = Flask(__name__)
    
    
    @app.route('/')
    def test():
        return render_template('post.html')
    
    @app.route('/progress', methods=['POST', 'GET'])
    def loding():
        global result, path
        if request.method == 'POST':
            path = request.form['path'] 
            result = request.form 
            return render_template('progress.html')
    
    @app.route('/list', methods=['POST'])
    def post():
        if request.method == 'POST':
            list,error = search(path)
            print(list)
            return render_template("result.html", result = result, list = list, error = error)




if __name__ == '__main__':
    app.run()

这是我的烧瓶代码。

    <!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Post</title>
</head>
<body>


<body>

        <form action="http://127.0.0.1:5000/progress" method="POST">
        <p>id : <input type="text" name="ID" ></p>
        <p>path : <input type="text" name="path" id="path"></p>
        <p><input type="submit" value="Run"></p>
    </form>
</body>
</html>

这是出现在我的第一页上的内容。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Changing the Value of Bootstrap 4 Progress Bar Dynamically</title>
<link rel="stylesheet" 
href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css">
<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.bundle.min.js"> 
</script>
<style>
    .bs-example{
        margin: 20px;
    }
</style>
</head>
<body>
<div class="bs-example">
    <!-- Progress bar HTML -->
    <div class="progress">
        <div class="progress-bar progress-bar-striped" style="min-width: 20px;"></div>
    </div>

    <form action="/list" method="POST">
        <input type="hidden" name="ID" value="">
        <input type="hidden" name="path" value="{{path}}">
    </form>

    <!-- jQuery Script -->
    <script>
        var i = 0;
        function makeProgress(){
            if(i < 100){
                i = i + 10;
                $(".progress-bar").css("width", i + "%").text(i + " %");
                setTimeout("makeProgress()", 100);
                }
            // Wait for sometime before running this script again
                else { document.forms[0].submit(); }
        };

<!--        $.ajax({-->

<!--  type:'post',-->
<!--  async:'true',-->
<!--  url:'http://127.0.0.1:5000/ ',-->
<!--  data:{path},-->
<!--  dataType: 'json',-->

<!--  complete:function(data,textStatus) {-->
<!--    location.href='/list'-->
<!--  }-->
<!--});-->
        makeProgress()


    </script>
</div>
</body>
</html>

标签: jquery

解决方案


我自己解决了。

from flask import Flask, render_template, request
from maratang import search #마라탕으로부터 불러와서 서치함수를 임포트 하겟다.


app = Flask(__name__)


@app.route('/')
def test():
    return render_template('post.html')

@app.route('/progress', methods=['POST', 'GET'])
def loding():
    global result, path, list, error
    if request.method == 'POST':
        result = request.form #임의로 입력한 ID 및 경로를 result.html로 전송하기 위한 변수
        path = request.form['path'] #임의로 입력한 경로를 저장한 변수
        list, error = search(path)

        return render_template('progress.html')

@app.route('/list', methods=['POST'])
def post():
    if request.method == 'POST':
        print(list)
        return render_template("result.html", result = result, list = list, error = error)



if __name__ == '__main__':
    app.run()

通过将变量声明为全局变量,我们可以将它们用作结果部分的返回值。


推荐阅读