建立一个mysql数据库存储两种药品及相互作用信息,在pycharm中使用layui建立一个查询两种药物相互作用结果信息的界面,两种药品信息有下拉框且内容来自mysql,点击查询按钮跳转显示mysql中的相互作用信息
时间: 2024-05-05 07:22:41 浏览: 116
MySql药品数据库。
5星 · 资源好评率100%
好的,这个问题可以分为两个部分来解决:
1. 建立MySQL数据库并存储两种药品及相互作用信息
2. 在Pycharm中使用Layui建立一个查询界面,并通过MySQL查询出相互作用信息
下面分别来解决这两个部分。
## 1. 建立MySQL数据库并存储两种药品及相互作用信息
首先需要安装并启动MySQL数据库,在MySQL中创建一个名为`drug_interaction`的数据库,并创建两个表:`drug`和`interaction`。
### 1.1 创建drug表
`drug`表用于存储药品信息,包括药品ID和药品名称。
```sql
CREATE TABLE drug (
drug_id INT AUTO_INCREMENT PRIMARY KEY,
drug_name VARCHAR(50) NOT NULL UNIQUE
);
```
### 1.2 创建interaction表
`interaction`表用于存储药品相互作用信息,包括相互作用ID、药品1ID、药品2ID、相互作用描述。
```sql
CREATE TABLE interaction (
interaction_id INT AUTO_INCREMENT PRIMARY KEY,
drug1_id INT NOT NULL,
drug2_id INT NOT NULL,
description VARCHAR(200),
FOREIGN KEY (drug1_id) REFERENCES drug(drug_id),
FOREIGN KEY (drug2_id) REFERENCES drug(drug_id)
);
```
### 1.3 插入数据
在`drug`表中插入两个药品的信息:
```sql
INSERT INTO drug (drug_name) VALUES ('药品A'), ('药品B');
```
在`interaction`表中插入两种药品的相互作用信息:
```sql
INSERT INTO interaction (drug1_id, drug2_id, description) VALUES (1, 2, '药品A和药品B不可同时使用');
```
## 2. 使用Layui建立查询界面并查询MySQL中的相互作用信息
在Pycharm中创建一个名为`drug_interaction`的项目,并安装Layui。
### 2.1 创建HTML文件
在项目中创建一个名为`index.html`的文件,并添加以下代码:
```html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>药品相互作用查询</title>
<link rel="stylesheet" href="layui/css/layui.css">
</head>
<body>
<div class="layui-container">
<div class="layui-row">
<div class="layui-col-md4">
<div class="layui-form-item">
<label class="layui-form-label">药品A:</label>
<div class="layui-input-block">
<select id="drug1" lay-verify="required">
<option value="">请选择药品A</option>
</select>
</div>
</div>
</div>
<div class="layui-col-md4">
<div class="layui-form-item">
<label class="layui-form-label">药品B:</label>
<div class="layui-input-block">
<select id="drug2" lay-verify="required">
<option value="">请选择药品B</option>
</select>
</div>
</div>
</div>
<div class="layui-col-md4">
<button class="layui-btn layui-btn-normal" id="queryBtn">查询</button>
</div>
</div>
<div class="layui-row">
<div class="layui-col-md12">
<table class="layui-table">
<thead>
<tr>
<th>药品A</th>
<th>药品B</th>
<th>相互作用描述</th>
</tr>
</thead>
<tbody id="result">
</tbody>
</table>
</div>
</div>
</div>
<script src="layui/layui.js"></script>
<script>
layui.use(['form', 'jquery'], function () {
var form = layui.form;
var $ = layui.jquery;
// 加载药品列表
$.get('/drug', function (data) {
var drug1Select = $('#drug1');
var drug2Select = $('#drug2');
for (var i = 0; i < data.length; i++) {
var option = '<option value="' + data[i].drug_id + '">' + data[i].drug_name + '</option>';
drug1Select.append(option);
drug2Select.append(option);
}
form.render('select');
});
// 查询相互作用信息
$('#queryBtn').click(function () {
var drug1 = $('#drug1').val();
var drug2 = $('#drug2').val();
if (drug1 === '' || drug2 === '') {
layer.msg('请选择药品A和药品B');
return;
}
$.get('/interaction', {drug1_id: drug1, drug2_id: drug2}, function (data) {
$('#result').empty();
if (data.length === 0) {
layer.msg('没有相互作用');
} else {
for (var i = 0; i < data.length; i++) {
var tr = '<tr><td>' + data[i].drug1_name + '</td><td>' + data[i].drug2_name + '</td><td>' + data[i].description + '</td></tr>';
$('#result').append(tr);
}
}
});
});
});
</script>
</body>
</html>
```
其中,`drug1`和`drug2`是两个下拉框,用于选择药品A和药品B;`queryBtn`是查询按钮;`result`是查询结果展示的表格。
### 2.2 创建Flask应用程序
在项目中创建一个名为`app.py`的文件,并添加以下代码:
```python
from flask import Flask, jsonify, request, render_template
from flask_cors import CORS
import pymysql
app = Flask(__name__)
CORS(app)
# 数据库连接信息
host = 'localhost'
port = 3306
user = 'root'
password = '123456'
database = 'drug_interaction'
# 连接数据库
db = pymysql.connect(host=host, port=port, user=user, password=password, database=database, charset='utf8')
@app.route('/')
def index():
return render_template('index.html')
@app.route('/drug')
def get_drug_list():
cursor = db.cursor()
sql = 'SELECT drug_id, drug_name FROM drug'
cursor.execute(sql)
result = cursor.fetchall()
drug_list = []
for row in result:
drug = {'drug_id': row[0], 'drug_name': row[1]}
drug_list.append(drug)
cursor.close()
return jsonify(drug_list)
@app.route('/interaction')
def get_interaction_list():
drug1_id = request.args.get('drug1_id')
drug2_id = request.args.get('drug2_id')
cursor = db.cursor()
sql = 'SELECT d1.drug_name, d2.drug_name, i.description FROM interaction i INNER JOIN drug d1 ON i.drug1_id=d1.drug_id INNER JOIN drug d2 ON i.drug2_id=d2.drug_id WHERE i.drug1_id=%s AND i.drug2_id=%s'
cursor.execute(sql, (drug1_id, drug2_id))
result = cursor.fetchall()
interaction_list = []
for row in result:
interaction = {'drug1_name': row[0], 'drug2_name': row[1], 'description': row[2]}
interaction_list.append(interaction)
cursor.close()
return jsonify(interaction_list)
if __name__ == '__main__':
app.run(debug=True)
```
其中,`get_drug_list`函数用于查询药品列表,返回一个JSON格式的数据;`get_interaction_list`函数用于查询相互作用信息,返回一个JSON格式的数据。
### 2.3 运行应用程序
在Pycharm中运行`app.py`,浏览器访问`http://localhost:5000/`,即可看到查询界面。选择药品A和药品B,点击查询按钮,即可查询出相互作用信息。
阅读全文