建立一个mysql数据库存储drug1 drug2及interaction 在pycharm中使用layui建立一个查询两种药物相互作用结果信息的界面,两种药品信息有下拉框且内容来自drug1和drug2y,点击查询按钮跳转显示interaction
时间: 2024-05-08 19:22:11 浏览: 13
好的,首先我们需要先在 MySQL 中建立一个数据库,然后在该数据库中建立一个表来存储药品相互作用信息。可以使用以下 SQL 语句来创建表:
```sql
CREATE TABLE drug_interactions (
id INT PRIMARY KEY AUTO_INCREMENT,
drug1 VARCHAR(255),
drug2 VARCHAR(255),
interaction VARCHAR(255)
);
```
接下来,我们需要在 PyCharm 中连接到该数据库,并使用 Python 代码来创建一个查询界面。这里我们选择使用 Flask 框架来实现。首先,我们需要安装 Flask:
```
pip install flask
```
然后,我们可以创建一个名为 `app.py` 的 Python 文件,代码如下:
```python
from flask import Flask, render_template, request
import mysql.connector
app = Flask(__name__)
# 连接到 MySQL 数据库
db = mysql.connector.connect(
host="localhost",
user="root",
password="password",
database="drug_interactions"
)
# 创建一个游标对象
cursor = db.cursor()
# 定义首页路由
@app.route('/')
def index():
# 查询所有的药品名称
cursor.execute("SELECT DISTINCT drug1 FROM drug_interactions")
drugs = [row[0] for row in cursor.fetchall()]
return render_template('index.html', drugs=drugs)
# 定义查询结果路由
@app.route('/result', methods=['POST'])
def result():
# 获取用户输入的药品名称
drug1 = request.form['drug1']
drug2 = request.form['drug2']
# 查询药品相互作用信息
cursor.execute("SELECT interaction FROM drug_interactions WHERE drug1=%s AND drug2=%s", (drug1, drug2))
interaction = cursor.fetchone()
if interaction:
interaction = interaction[0]
else:
interaction = "未知"
return render_template('result.html', drug1=drug1, drug2=drug2, interaction=interaction)
if __name__ == '__main__':
app.run(debug=True)
```
上述代码中,我们首先连接到 MySQL 数据库,然后定义了两个路由:`/` 和 `/result`。其中,`/` 路由对应的是查询界面,`/result` 路由对应的是查询结果界面。
在查询界面中,我们使用了两个下拉框来选择药品名称。这里我们使用了 `render_template` 函数来渲染 HTML 模板,代码如下:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>查询药品相互作用信息</title>
<link rel="stylesheet" href="//cdn.staticfile.org/layui/2.5.6/css/layui.min.css">
</head>
<body>
<div class="layui-container">
<h1>查询药品相互作用信息</h1>
<form class="layui-form" action="/result" method="post">
<div class="layui-form-item">
<label class="layui-form-label">药品1</label>
<div class="layui-input-block">
<select name="drug1" lay-verify="required">
<option value="">请选择药品1</option>
{% for drug in drugs %}
<option value="{{ drug }}">{{ drug }}</option>
{% endfor %}
</select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">药品2</label>
<div class="layui-input-block">
<select name="drug2" lay-verify="required">
<option value="">请选择药品2</option>
{% for drug in drugs %}
<option value="{{ drug }}">{{ drug }}</option>
{% endfor %}
</select>
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-block">
<button class="layui-btn" lay-submit="" lay-filter="demo1">查询</button>
</div>
</div>
</form>
</div>
<script src="//cdn.staticfile.org/jquery/3.4.1/jquery.min.js"></script>
<script src="//cdn.staticfile.org/layui/2.5.6/layui.min.js"></script>
</body>
</html>
```
在查询结果界面中,我们使用了 `request` 对象来获取用户输入的药品名称,并使用了 `cursor.execute` 函数来查询药品相互作用信息。如果查询到了相关信息,则将其显示在界面上;否则,显示“未知”,代码如下:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>查询结果</title>
<link rel="stylesheet" href="//cdn.staticfile.org/layui/2.5.6/css/layui.min.css">
</head>
<body>
<div class="layui-container">
<h1>查询结果</h1>
<div class="layui-card">
<div class="layui-card-header">药品1:{{ drug1 }}</div>
<div class="layui-card-body">
<p>药品2:{{ drug2 }}</p>
<p>相互作用:{{ interaction }}</p>
</div>
</div>
</div>
<script src="//cdn.staticfile.org/jquery/3.4.1/jquery.min.js"></script>
<script src="//cdn.staticfile.org/layui/2.5.6/layui.min.js"></script>
</body>
</html>
```
最后,我们可以在 PyCharm 中运行 `app.py` 文件,并在浏览器中访问 `http://127.0.0.1:5000` 来查看查询界面。