1.新建一个django5项目
选择之前的虚拟环境
创建好的项目结构
2.创建一个测试数据库
我的是在宝塔里面创建一个测试数据库database_demo
使用HeidiSQL连接到数据库
创建新的表book
创建id为自增类型
设置id为主键索引
添加一个name字段
向book里面添加一条数据
3.Django配置连接数据库
修改settings.py连接数据库mysql的配置
DATABASES = {
'default': {
# 数据库引擎(是mysql还是oracle等)
'ENGINE': 'django.db.backends.mysql',
# 数据库的名字
'NAME': 'database_demo',
# 连接mysql数据库的用户名
'USER': 'database_demo',
# 连接mysql数据库的密码
'PASSWORD': 'yLTw6KekxJdykAre',
# mysql数据库的主机地址
'HOST': '127.0.0.1',
# mysql数据库的端口号
'PORT': '3306',
}
}
4.django操作数据库
新建一个app
建立一个测试环境的路由映射
urls.py
from django.contrib import admin
from django.urls import path
from book import views
urlpatterns = [
path('admin/', admin.site.urls),
path('', views.index,name='index'),
]
views.py
from django.shortcuts import render,HttpResponse
# 使用django封装好的connection对象,会自动读取settings.py中数据库的配置信息
from django.db import connection
# Create your views here.
def index(request):
# 获取游标对象
cursor = connection.cursor()
# 拿到游标对象后执行sql语句
cursor.execute("select * from book")
# 获取所有的数据
rows = cursor.fetchall()
# 遍历查询到的数据
for row in rows:
print(row)
return HttpResponse("查找数据成功!")
启动下项目,浏览器访问http://127.0.0.1:8000/
可以在终端中看到数据
以上的execute
以及fetchall
方法都是Python DB API
规范中定义好的。任何使用Python
来操作MySQL
的驱动程序都应该遵循这个规范。所以不管是使用pymysql
或者是mysqlclient
或者是mysqldb
,他们的接口都是一样的。更多规范请参考:https://www.python.org/dev/peps/pep-0249/。
5.Python DB API下规范下cursor对象常用接口
-
description
:如果cursor
执行了查询的sql
代码。那么读取cursor.description
属性的时候,将返回一个列表,这个列表中装的是元组,元组中装的分别是(name,type_code,display_size,internal_size,precision,scale,null_ok)
,其中name
代表的是查找出来的数据的字段名称,其他参数暂时用处不大。 -
rowcount
:代表的是在执行了sql
语句后受影响的行数。 -
close
:关闭游标。关闭游标以后就再也不能使用了,否则会抛出异常。 -
execute(sql[,parameters])
:执行某个sql
语句。如果在执行sql
语句的时候还需要传递参数,那么可以传给parameters
参数。示例代码如下:cursor.execute("select * from article where id=%s",(1,))
-
fetchone
:在执行了查询操作以后,获取第一条数据。 -
fetchmany(size)
:在执行查询操作以后,获取多条数据。具体是多少条要看传的size
参数。如果不传size
参数,那么默认是获取第一条数据。 -
fetchall
:获取所有满足sql
语句的数据。