用django调用MySQL完成以下语句的编写:show tables; insert into bookinfo(btitle,bpub_date,bread,bcommet,isDelete) values ('射雕英雄传','1980-5-1',12,34,0), ('天龙八部','1986-7-24',36,40,0), ('笑傲江湖','1995-12-24',20,80,0), ('雪山飞狐','1987-11-11',58,24,0); select * from bookinfo; # localhost:8000/book/show/ 显示全部信息 页面名称show.html
时间: 2023-08-07 10:02:00 浏览: 91
在 Django 中使用 MySQL,需要安装 MySQLdb 或 pymysql 库。这里我们选择安装 pymysql 库。
1. 安装 pymysql 库
在终端中输入以下命令进行安装:
```
pip install pymysql
```
2. 配置 Django 的数据库连接
在 settings.py 文件中添加以下内容:
```
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': '数据库名',
'USER': '用户名',
'PASSWORD': '密码',
'HOST': 'localhost',
'PORT': '3306',
'OPTIONS': {
'charset': 'utf8mb4',
},
},
}
```
将其中的数据库名、用户名、密码修改为自己的信息。
3. 创建 BookInfo 模型类
在 models.py 文件中添加以下内容:
```
from django.db import models
class BookInfo(models.Model):
btitle = models.CharField(max_length=20)
bpub_date = models.DateField()
bread = models.IntegerField()
bcommet = models.IntegerField()
isDelete = models.BooleanField(default=False)
def __str__(self):
return self.btitle
class Meta:
db_table = 'bookinfo'
```
4. 创建视图函数
在 views.py 文件中添加以下内容:
```
from django.shortcuts import render
from .models import BookInfo
from django.db import connection
def show(request):
cursor = connection.cursor()
cursor.execute('show tables;')
tables = cursor.fetchall()
BookInfo.objects.create(btitle='射雕英雄传', bpub_date='1980-5-1', bread=12, bcommet=34, isDelete=False)
BookInfo.objects.create(btitle='天龙八部', bpub_date='1986-7-24', bread=36, bcommet=40, isDelete=False)
BookInfo.objects.create(btitle='笑傲江湖', bpub_date='1995-12-24', bread=20, bcommet=80, isDelete=False)
BookInfo.objects.create(btitle='雪山飞狐', bpub_date='1987-11-11', bread=58, bcommet=24, isDelete=False)
books = BookInfo.objects.all()
context = {
'tables': tables,
'books': books,
}
return render(request, 'show.html', context)
```
在这个视图函数中,我们先执行了 show tables; SQL 语句,获取到所有的表名。然后,我们使用 BookInfo 模型类的 objects.create() 方法,向 bookinfo 表中插入了四条数据。最后,使用 BookInfo 模型类的 objects.all() 方法,获取到了 bookinfo 表中的全部数据。
5. 创建 show.html 模板文件
在 templates 目录下创建 show.html 文件,添加以下内容:
```
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>书籍信息</title>
</head>
<body>
<h2>数据库中的所有表:</h2>
<ul>
{% for table in tables %}
<li>{{ table }}</li>
{% endfor %}
</ul>
<h2>书籍信息:</h2>
<table>
<thead>
<tr>
<th>书名</th>
<th>出版日期</th>
<th>阅读量</th>
<th>评论量</th>
<th>是否删除</th>
</tr>
</thead>
<tbody>
{% for book in books %}
<tr>
<td>{{ book.btitle }}</td>
<td>{{ book.bpub_date }}</td>
<td>{{ book.bread }}</td>
<td>{{ book.bcommet }}</td>
<td>{{ book.isDelete }}</td>
</tr>
{% endfor %}
</tbody>
</table>
</body>
</html>
```
6. 创建 URLconf
在 urls.py 文件中添加以下内容:
```
from django.urls import path
from . import views
urlpatterns = [
path('show/', views.show, name='show'),
]
```
7. 运行项目
在终端中输入以下命令运行项目:
```
python manage.py runserver
```
打开浏览器,访问 http://localhost:8000/book/show/,即可看到数据库中的所有表和 bookinfo 表中的全部数据。
阅读全文