下面是一个完整攻略,讲解如何使用Django从MySQL数据库中读取数据并在前端显示。
环境准备
在开始之前,需要准备好以下环境:
- Python 3.x
- Django 3.x
- MySQL及mysqlclient库
数据库设置
在使用Django连接MySQL数据库之前,需要先在settings.py文件中进行相应的配置。按以下步骤操作:
- 打开settings.py文件,找到DATABASES设置
- 将DATABASES设置中的ENGINE设置为'django.db.backends.mysql'
- 将DATABASES设置中的其他参数设置为相应的值,例如NAME、USER、PASSWORD等
创建模型
创建模型之前,需要先创建一个Django项目。在项目文件夹中创建一个应用,用来存放相关的模型及视图。
然后,在应用中的models.py文件中创建模型类。例如,创建一个Student模型类,包括id、name和age三个属性:
from django.db import models
class Student(models.Model):
id = models.AutoField(primary_key=True)
name = models.CharField(max_length=20)
age = models.IntegerField()
在完成模型类的创建后,需要执行makemigrations和migrate命令。这两个命令可以在Django的命令行中执行:
python manage.py makemigrations
python manage.py migrate
执行完这两个命令后,数据库中将会创建与模型类对应的表格。
创建视图
在应用的views.py中创建一个视图函数,用来查询数据库并将结果返回到前端页面。例如,创建一个查询Student模型类的视图:
from django.shortcuts import render
from .models import Student
def student_list(request):
students = Student.objects.all()
return render(request, 'student_list.html', {'students': students})
这个视图函数中,我们使用Student.objects.all()方法从数据库中查询所有学生的信息,并将查询结果保存在名为students的变量中。然后将students变量传递给一个名为student_list.html的HTML模板。
创建模板
在应用的templates目录下创建一个名为student_list.html的模板,用来展示查询结果。例如,下面是一个将查询结果以表格的形式展示出来的示例HTML代码:
<html>
<head>
<title>学生列表</title>
</head>
<body>
<table>
<thead>
<tr>
<th>学生ID</th>
<th>姓名</th>
<th>年龄</th>
</tr>
</thead>
<tbody>
{% for student in students %}
<tr>
<td>{{ student.id }}</td>
<td>{{ student.name }}</td>
<td>{{ student.age }}</td>
</tr>
{% endfor %}
</tbody>
</table>
</body>
</html>
在这个模板中,我们使用Django的模板语言来动态生成HTML代码。我们使用一个for循环来遍历查询结果中的每个学生对象,并将学生ID、姓名和年龄显示在表格中。
路由设置
最后一步是创建路由,将查询结果页面的URL与视图函数关联。在应用的urls.py文件中添加一条路由规则,例如,将/students/路径映射到student_list视图函数:
from django.urls import path
from . import views
urlpatterns = [
path('students/', views.student_list, name='student_list'),
]
现在,可以启动Django服务器并在浏览器中访问/students/路径,就能看到从数据库中查询到的学生列表了。
以上是一个基本的示例,当然实际情况下还会有更多的细节需要注意。例如,如果查询的数据量比较大,可以使用分页功能来优化访问性能;如果查询数据需要进行复杂的处理,可以在视图中编写相应的逻辑等等。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Django读取Mysql数据并显示在前端的实例 - Python技术站