错误请求:浏览器(或代理)发送了此服务器无法理解的请求

时间:2021-02-17 17:04:32

标签: javascript python html jquery flask-wtforms

我在将 python-flask 连接到 jquery 时遇到了一些问题。

app.py

from flask import Flask, render_template, request, jsonify
from flask_mysqldb import MySQL

app = Flask(__name__)

app.config['MYSQL_USER'] = 'root'
app.config['MYSQL_PASSWORD'] = ''
app.config['MYSQL_DB'] = 'pricco'
app.config['MYSQL_HOST'] = 'localhost'
mysql = MySQL(app)

@app.route('/')
def hello_world():
    return render_template('home.html')

@app.route('/login', methods=['POST', 'GET'])
def login():
    if request.method == 'POST':
        email = request.form['email']
        name = request.form['name']

        cur = mysql.connection.cursor()
        cur.execute("SELECT * FROM USERS WHERE Email='" + email + "' AND Paswd='" + name + "'")
        details = cur.fetchone()

        cur.execute("SELECT Fname FROM USERS WHERE Email='" + email + "'")
        username = cur.fetchone()

        if (details and username) == None:
            return jsonify({'error' : 'Missing data!'})
        else:
            un = username[0]
            return render_template('home.html', jsonify({'name': un}))

    return render_template('login.html')

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

home.html

<html lang="en">
<head>
    <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.slim.min.js"></script>

    <script src="{{ url_for('static', filename='js/JavaScript.js') }}"></script>
</head>
<body>
    <div class="container">
        <a href="login">login</a>
        <div id="successAlert" class="alert alert-danger" role="alert" style="display:none;"></div>
    </div>
</body>
</html>

登录.html

<html lang="en">
<head>
    <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.slim.min.js"></script>

    <script src="{{ url_for('static', filename='js/JavaScript.js') }}"></script>
</head>
<body>
    <div class="container">
        <form action="/login" method="post" class="form-inline">
            <div class="form-group">
                <label class="sr-only" for="emailInput">Email address</label>
                <input type="email" class="form-control" id="emailInput" placeholder="Email">
            </div>
            <div class="form-group">
                <label class="sr-only" for="nameInput">Name</label>
                <input type="password" class="form-control" id="nameInput" placeholder="First Name">
            </div>
            <button type="submit" class="btn btn-default">Submit</button>
        </form>
        <br>
        <div id="errorAlert" class="alert alert-danger" role="alert" style="display:none;"></div>
    </div>
</body>
</html>

JavaScript.js

$(document).ready(function() {
    $('form').on('submit', function(event) {
        $.ajax({
            data : {
                name : $('#nameInput').val(),
                email : $('#emailInput').val()
            },
            type : 'POST',
            url : '/login'
        })
            .done(function(data) {
                if (data.error) {
                    $('#errorAlert').text(data.error).show();
                }
                else {
                    $('#successAlert').text(data.name).show();
                }
            });
        event.preventDefault();
    });
});

我如何通过flask'app.py'访问从登录页面输入的数据并将其发送到javascript页面进行条件,它会在主页上显示数据,否则它会在登录页面中给出错误。

我正在尝试,但它给出了错误 Bad Request: The browser (or proxy) sent a request that this server could not understand

请帮忙解决这个问题。

0 个答案:

没有答案