为django框架用bootstrap写一个查询两种药品相互作用信息的页面,内容都来自mysql中,点击查询按钮如果在数据库中查询到对应的信息则跳转显示相互作用结果信息,如果没有查询到信息,则输出:抱歉,未查询到相关信息
时间: 2024-05-10 13:16:36 浏览: 124
好的,首先需要在Django中配置连接MySQL数据库。
在settings.py文件中,加入以下代码更新DATABASES配置:
```python
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'your_database_name',
'USER': 'your_username',
'PASSWORD': 'your_password',
'HOST': 'your_host',
'PORT': 'your_port',
}
}
```
其中,`your_database_name` 为你的MySQL数据库名称,`your_username` 和 `your_password` 是你的MySQL数据库的用户名和密码,`your_host` 是你的MySQL数据库的主机名,`your_port` 是你的MySQL数据库的端口号,默认为3306。
接下来,创建一个Django项目,并在其中创建一个名为“drug_interaction”的应用程序。在应用程序的views.py文件中添加以下代码:
```python
from django.shortcuts import render
from django.db import connection
def drug_interaction(request):
if request.method == 'POST':
drug1 = request.POST.get('drug1')
drug2 = request.POST.get('drug2')
cursor = connection.cursor()
cursor.execute("SELECT * FROM drug_interaction WHERE drug1=%s AND drug2=%s", [drug1, drug2])
results = cursor.fetchall()
if len(results) > 0:
return render(request, 'drug_interaction_result.html', {'results': results})
else:
return render(request, 'drug_interaction_result.html', {'message': '抱歉,未查询到相关信息。'})
return render(request, 'drug_interaction.html')
```
在这个视图函数中,我们首先判断请求方法是否为POST,如果是POST请求,则获取提交的两种药品名称,从数据库中查询相互作用信息,如果查询到数据,则返回drug_interaction_result.html模板页面并返回查询结果,否则返回drug_interaction_result.html模板页面并返回“抱歉,未查询到相关信息。”的提示信息。
接下来,在应用程序的urls.py文件中添加以下代码:
```python
from django.urls import path
from . import views
urlpatterns = [
path('drug_interaction/', views.drug_interaction, name='drug_interaction'),
]
```
这样,我们就完成了视图函数和URL路由的配置。接下来,我们需要创建drug_interaction.html模板页面,其中包括一个表单,用户可以在表单中输入两种药品名称进行查询。
```html
{% extends 'base.html' %}
{% block content %}
<div class="container">
<div class="row justify-content-center">
<div class="col-md-8">
<div class="card">
<div class="card-header">查询两种药品相互作用信息</div>
<div class="card-body">
<form method="post">
{% csrf_token %}
<div class="form-group">
<label for="drug1">药品1:</label>
<input type="text" class="form-control" id="drug1" name="drug1" required>
</div>
<div class="form-group">
<label for="drug2">药品2:</label>
<input type="text" class="form-control" id="drug2" name="drug2" required>
</div>
<button type="submit" class="btn btn-primary">查询</button>
</form>
</div>
</div>
</div>
</div>
</div>
{% endblock %}
```
最后,在应用程序的templates文件夹中创建drug_interaction_result.html模板页面,用于显示查询结果或提示信息。
```html
{% extends 'base.html' %}
{% block content %}
<div class="container">
<div class="row justify-content-center">
<div class="col-md-8">
<div class="card">
<div class="card-header">查询结果</div>
<div class="card-body">
{% if message %}
<p>{{ message }}</p>
{% else %}
<table class="table">
<thead>
<tr>
<th>药品1</th>
<th>药品2</th>
<th>相互作用</th>
</tr>
</thead>
<tbody>
{% for result in results %}
<tr>
<td>{{ result.0 }}</td>
<td>{{ result.1 }}</td>
<td>{{ result.2 }}</td>
</tr>
{% endfor %}
</tbody>
</table>
{% endif %}
</div>
</div>
</div>
</div>
</div>
{% endblock %}
```
这样,我们就完成了一个查询两种药品相互作用信息的页面,内容来自MySQL数据库,点击查询按钮如果在数据库中查询到对应的信息则跳转显示相互作用结果信息,如果没有查询到信息,则输出“抱歉,未查询到相关信息”。
阅读全文