17.Django5入门教程-Django连接数据库配置

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语句的数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值