django项目中为我的高血压网站用建一个后台系统,后台导航栏其中一项为药品信息管理页面对mysql库drug_db中的drug_interaction表(drug_id drug1 drug2 interaction)进行增删改查操作
时间: 2023-06-26 10:07:59 浏览: 99
好的,你可以按照以下步骤来实现:
1. 在 Django 项目中创建一个应用(app),命名为 drug_interaction。
2. 在 drug_interaction 应用中创建一个 models.py 文件,定义一个 DrugInteraction 模型,用于映射到 drug_interaction 表。
```python
from django.db import models
class DrugInteraction(models.Model):
drug_id = models.IntegerField()
drug1 = models.CharField(max_length=100)
drug2 = models.CharField(max_length=100)
interaction = models.CharField(max_length=100)
```
3. 在 settings.py 文件中配置数据库连接信息。
```python
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'drug_db',
'USER': 'username',
'PASSWORD': 'password',
'HOST': 'localhost',
'PORT': '3306',
}
}
```
4. 在 drug_interaction 应用中创建一个 admin.py 文件,注册 DrugInteraction 模型并自定义管理页面。
```python
from django.contrib import admin
from .models import DrugInteraction
class DrugInteractionAdmin(admin.ModelAdmin):
list_display = ('drug_id', 'drug1', 'drug2', 'interaction')
search_fields = ('drug1', 'drug2', 'interaction')
list_filter = ('drug1', 'drug2')
admin.site.register(DrugInteraction, DrugInteractionAdmin)
```
5. 在 urls.py 文件中配置 drug_interaction 应用的路由。
```python
from django.urls import path
from . import views
urlpatterns = [
path('list/', views.drug_interaction_list, name='drug_interaction_list'),
path('add/', views.drug_interaction_add, name='drug_interaction_add'),
path('<int:pk>/update/', views.drug_interaction_update, name='drug_interaction_update'),
path('<int:pk>/delete/', views.drug_interaction_delete, name='drug_interaction_delete'),
]
```
6. 在 views.py 文件中实现四个视图函数,分别用于展示药品信息列表、添加药品信息、编辑药品信息和删除药品信息。
```python
from django.shortcuts import render, get_object_or_404, redirect
from .models import DrugInteraction
from .forms import DrugInteractionForm
def drug_interaction_list(request):
interactions = DrugInteraction.objects.all()
return render(request, 'drug_interaction_list.html', {'interactions': interactions})
def drug_interaction_add(request):
if request.method == 'POST':
form = DrugInteractionForm(request.POST)
if form.is_valid():
form.save()
return redirect('drug_interaction_list')
else:
form = DrugInteractionForm()
return render(request, 'drug_interaction_form.html', {'form': form})
def drug_interaction_update(request, pk):
interaction = get_object_or_404(DrugInteraction, pk=pk)
if request.method == 'POST':
form = DrugInteractionForm(request.POST, instance=interaction)
if form.is_valid():
form.save()
return redirect('drug_interaction_list')
else:
form = DrugInteractionForm(instance=interaction)
return render(request, 'drug_interaction_form.html', {'form': form})
def drug_interaction_delete(request, pk):
interaction = get_object_or_404(DrugInteraction, pk=pk)
interaction.delete()
return redirect('drug_interaction_list')
```
7. 在 drug_interaction 应用中创建一个 forms.py 文件,定义一个 DrugInteractionForm 表单,用于添加和编辑药品信息。
```python
from django import forms
from .models import DrugInteraction
class DrugInteractionForm(forms.ModelForm):
class Meta:
model = DrugInteraction
fields = ('drug_id', 'drug1', 'drug2', 'interaction')
```
8. 在 drug_interaction/templates/ 目录下创建三个模板文件,分别用于展示药品信息列表、添加和编辑药品信息。
drug_interaction_list.html
```html
{% extends 'base.html' %}
{% block content %}
<h2>药品信息列表</h2>
<a href="{% url 'drug_interaction_add' %}">添加药品信息</a>
<table>
<thead>
<tr>
<th>ID</th>
<th>药品1</th>
<th>药品2</th>
<th>相互作用</th>
<th>操作</th>
</tr>
</thead>
<tbody>
{% for interaction in interactions %}
<tr>
<td>{{ interaction.drug_id }}</td>
<td>{{ interaction.drug1 }}</td>
<td>{{ interaction.drug2 }}</td>
<td>{{ interaction.interaction }}</td>
<td>
<a href="{% url 'drug_interaction_update' interaction.pk %}">编辑</a>
<a href="{% url 'drug_interaction_delete' interaction.pk %}">删除</a>
</td>
</tr>
{% empty %}
<tr>
<td colspan="5">没有药品信息。</td>
</tr>
{% endfor %}
</tbody>
</table>
{% endblock %}
```
drug_interaction_form.html
```html
{% extends 'base.html' %}
{% block content %}
<h2>{% if form.instance.pk %}编辑{% else %}添加{% endif %}药品信息</h2>
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="保存">
</form>
{% endblock %}
```
base.html
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>{% block title %}{% endblock %}</title>
</head>
<body>
<div>
<h1>高血压网站后台</h1>
<ul>
<li><a href="{% url 'admin:index' %}">管理首页</a></li>
<li><a href="#">药品信息管理</a></li>
<li><a href="#">用户信息管理</a></li>
<li><a href="#">订单信息管理</a></li>
</ul>
</div>
<hr>
{% block content %}{% endblock %}
</body>
</html>
```
现在你就可以在后台系统中对 drug_interaction 表进行增删改查操作了。
阅读全文