有一个flask项目,前端有5个文本框,分别是项目名称、项目金额、项目期限、保证金和手续费。要实现一个功能:通过手动输入项目名称,然后根据项目名称从数据库中查询另外四个的值,并显示在相应的文本框中。请写出该需求的前后端代码。
时间: 2024-03-16 16:46:36 浏览: 76
好的,以下是该需求的前后端代码示例:
后端代码:
```python
from flask import Flask, request, jsonify
import pymysql
app = Flask(__name__)
# 数据库连接配置
DB_HOST = 'localhost'
DB_PORT = 3306
DB_USER = 'root'
DB_PASSWORD = '123456'
DB_NAME = 'test'
# 查询语句
SELECT_SQL = 'SELECT amount, deadline, deposit, fee FROM projects WHERE name = %s'
# 连接数据库
db = pymysql.connect(host=DB_HOST, port=DB_PORT, user=DB_USER, password=DB_PASSWORD, database=DB_NAME)
# 接口定义
@app.route('/query_project_info', methods=['POST'])
def query_project_info():
# 获取前端传来的项目名称
project_name = request.json.get('project_name')
# 执行查询操作
cursor = db.cursor()
cursor.execute(SELECT_SQL, (project_name,))
result = cursor.fetchone()
# 将结果返回给前端
if result:
return jsonify({'status': 'success', 'amount': result[0], 'deadline': result[1], 'deposit': result[2], 'fee': result[3]})
else:
return jsonify({'status': 'failure', 'message': '项目不存在'})
if __name__ == '__main__':
app.run()
```
前端代码:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>查询项目信息</title>
<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
<script>
$(function() {
// 绑定按钮点击事件
$('#query-btn').click(function() {
var project_name = $('#project-name').val();
if (project_name) {
$.ajax({
type: 'POST',
url: '/query_project_info',
contentType: 'application/json',
data: JSON.stringify({'project_name': project_name}),
success: function(data) {
if (data.status === 'success') {
$('#project-amount').val(data.amount);
$('#project-deadline').val(data.deadline);
$('#project-deposit').val(data.deposit);
$('#project-fee').val(data.fee);
} else {
alert(data.message);
}
},
error: function(xhr, textStatus, errorThrown) {
alert('请求失败,请稍后重试');
}
});
} else {
alert('请输入项目名称');
}
});
});
</script>
</head>
<body>
<h1>查询项目信息</h1>
<p>项目名称:<input type="text" id="project-name"></p>
<p>项目金额:<input type="text" id="project-amount" readonly></p>
<p>项目期限:<input type="text" id="project-deadline" readonly></p>
<p>保证金:<input type="text" id="project-deposit" readonly></p>
<p>手续费:<input type="text" id="project-fee" readonly></p>
<button id="query-btn">查询</button>
</body>
</html>
```
这里使用了 jQuery 库来方便地实现 Ajax 请求和文本框操作。当用户点击查询按钮时,前端会将项目名称通过 Ajax 请求发送到后端的接口中,后端会查询数据库并返回项目金额、项目期限、保证金和手续费等值,前端会将这些值设置到相应的文本框中显示给用户。
阅读全文