我在将 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
。
请帮忙解决这个问题。