在Django中如何访问MySQL数据库的已有表并将其渲染到HTML页面
Django 访问现有 MySQL 表并渲染到 HTML 完整步骤
- 第一步:配置 MySQL 数据库连接
先安装数据库驱动,执行pip install mysqlclient,之后打开项目的settings.py,修改DATABASES配置项:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': '你的MySQL库名', 'USER': 'MySQL用户名', 'PASSWORD': 'MySQL密码', 'HOST': '127.0.0.1', 'PORT': '3306', } }
- 第二步:反向生成已有表对应的模型类
Django 自带反向生成模型的工具,直接执行命令:python manage.py inspectdb > temp_models.py
执行完成后打开生成的temp_models.py,找到你需要访问的表对应的模型类,复制到你的应用的models.py文件中即可。
注意生成的模型类的 Meta 配置中默认会有
managed = False和db_table = "你的实际表名",不要修改这两项,managed=False表示 Django 不会对该表执行迁移修改操作,避免影响原有表结构。
- 第三步:编写视图函数查询数据
打开应用的views.py,导入刚才的模型类,编写视图查询数据并传递给模板,示例如下:
from django.shortcuts import render from .models import 你复制过来的模型类名 def render_table(request): # 可根据需求修改查询条件,比如filter、exclude等 table_data = 你复制过来的模型类名.objects.all() return render(request, 'table_show.html', {'data_list': table_data})
- 第四步:配置访问路由
在应用的urls.py中添加路由映射:
from django.urls import path from . import views urlpatterns = [ path('show-table/', views.render_table, name='show_table'), ]
如果是刚新建的应用,记得把应用路由添加到项目根目录的urls.py的urlpatterns中。
- 第五步:编写HTML模板渲染数据
在应用的templates目录下新建table_show.html,用 Django 模板语法遍历数据即可,示例如下:
<!DOCTYPE html> <html> <head> <title>表数据展示</title> </head> <body> <table border="1"> <tr> <th>字段1名称</th> <th>字段2名称</th> <th>字段3名称</th> </tr> {% for item in data_list %} <tr> <td>{{ item.字段1名 }}</td> <td>{{ item.字段2名 }}</td> <td>{{ item.字段3名 }}</td> </tr> {% endfor %} </table> </body> </html>
配置完成后启动项目,访问对应路由即可看到渲染后的表数据。
内容的提问来源于stack exchange,提问作者Nikhil Yadavaram
相关产品推荐
相关产品推荐

