pycharm,flask,mysql,layui写一个检索两种药品相互作用信息的网页,两种药品信息来自设置下拉框显示来自数据库中的药品信息,点击查询按钮跳转显示来自数据库中的相互作用信息
时间: 2024-06-09 16:04:36 浏览: 119
python+Django+pycharm+mysql 搭建首个web项目详解
好的,这是一个比较完整的项目,需要分步骤来完成。
**1. 创建数据库**
首先,我们需要创建一个数据库,用来存储药品信息和相互作用信息。可以使用 MySQL 或者其他关系型数据库。
在数据库中创建两个表:`medicine` 和 `interaction`。
`medicine` 表的结构如下:
| 列名 | 类型 | 说明 |
| --- | --- | --- |
| id | int(11) | 主键 |
| name | varchar(255) | 药品名称 |
| description | varchar(255) | 药品描述 |
`interaction` 表的结构如下:
| 列名 | 类型 | 说明 |
| --- | --- | --- |
| id | int(11) | 主键 |
| medicine1 | int(11) | 药品1的id |
| medicine2 | int(11) | 药品2的id |
| effect | varchar(255) | 相互作用信息 |
**2. 创建 Flask 应用**
接下来,我们需要创建一个 Flask 应用,用来提供网页端的功能。可以使用 PyCharm 或者其他 Python IDE 来创建项目。
在项目中创建一个名为 `app.py` 的文件,编写以下代码:
```python
from flask import Flask, render_template, request
import pymysql
app = Flask(__name__)
db = pymysql.connect(host='localhost', user='root', password='root', database='test', charset='utf8mb4')
cursor = db.cursor()
@app.route('/')
def index():
return render_template('index.html')
@app.route('/search', methods=['POST'])
def search():
medicine1 = request.form['medicine1']
medicine2 = request.form['medicine2']
sql = 'select effect from interaction where medicine1=%s and medicine2=%s'
cursor.execute(sql, (medicine1, medicine2))
result = cursor.fetchone()
if result is None:
return '没有找到相互作用信息'
else:
return result[0]
if __name__ == '__main__':
app.run(debug=True)
```
这段代码创建了一个 Flask 应用,并且连接了数据库。在主页设置了一个链接到搜索页面的按钮,并且在搜索页面提供了两个下拉框,用来选择药品。当用户点击搜索按钮时,会提交表单并调用 `search` 函数进行查询,查询结果会在页面上显示出来。
**3. 编写前端页面**
接下来,我们需要编写前端页面,用来显示药品信息和相互作用信息。
在项目中创建一个名为 `templates` 的目录,用来存放 HTML 模板。
在 `templates` 目录中创建一个名为 `index.html` 的文件,编写以下代码:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>检索药品相互作用信息</title>
<link rel="stylesheet" href="https://cdn.staticfile.org/layui/2.5.6/css/layui.css">
</head>
<body>
<div class="layui-container">
<div class="layui-row">
<div class="layui-col-md6">
<a href="/search" class="layui-btn">搜索相互作用信息</a>
</div>
</div>
</div>
<script src="https://cdn.staticfile.org/layui/2.5.6/layui.js"></script>
</body>
</html>
```
这段代码创建了一个主页,其中有一个链接到搜索页面的按钮。
在 `templates` 目录中创建一个名为 `search.html` 的文件,编写以下代码:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>检索药品相互作用信息</title>
<link rel="stylesheet" href="https://cdn.staticfile.org/layui/2.5.6/css/layui.css">
</head>
<body>
<div class="layui-container">
<div class="layui-row">
<div class="layui-col-md6">
<form class="layui-form" action="/search" method="post">
<div class="layui-form-item">
<label class="layui-form-label">药品1:</label>
<div class="layui-input-block">
<select name="medicine1" lay-verify="required">
<option value="">请选择</option>
{% for medicine in medicines %}
<option value="{{ medicine[0] }}">{{ medicine[1] }}</option>
{% endfor %}
</select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">药品2:</label>
<div class="layui-input-block">
<select name="medicine2" lay-verify="required">
<option value="">请选择</option>
{% for medicine in medicines %}
<option value="{{ medicine[0] }}">{{ medicine[1] }}</option>
{% endfor %}
</select>
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-block">
<button class="layui-btn" lay-submit="" lay-filter="search">查询</button>
</div>
</div>
</form>
</div>
</div>
<div class="layui-row">
<div class="layui-col-md6">
{% if result %}
<div class="layui-card">
<div class="layui-card-header">相互作用信息</div>
<div class="layui-card-body">{{ result }}</div>
</div>
{% endif %}
</div>
</div>
</div>
<script src="https://cdn.staticfile.org/layui/2.5.6/layui.js"></script>
</body>
</html>
```
这段代码创建了一个搜索页面,其中有两个下拉框用来选择药品,一个查询按钮用来进行搜索,以及一个用来显示查询结果的卡片。
在模板中使用了 Jinja2 的语法,通过循环将药品信息插入到下拉框中,并且通过判断查询结果是否存在来决定是否显示相互作用信息。
**4. 运行应用**
最后,我们需要运行应用,测试是否正常工作。
在 PyCharm 中运行 `app.py` 文件,然后在浏览器中访问 `http://localhost:5000/`,点击搜索按钮跳转到搜索页面,选择两种药品并点击查询按钮,应该能够显示出相互作用信息。
至此,检索药品相互作用信息的网页应用就完成了。
阅读全文