Pycharm开发Django项目操作数据库
2021/10/19 19:15:41
本文主要是介绍Pycharm开发Django项目操作数据库,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
操作数据库
Django配置连接数据库:
在操作数据库之前,首先先要连接数据库。这里我们以配置MySQL
为例来讲解。Django
连接数据库,不需要单独的创建一个连接对象。只需要在settings.py
文件中做好数据库相关的配置就可以了。示例代码如下:
DATABASES = { 'default': { # 数据库引擎(是mysql还是oracle等) 'ENGINE': 'django.db.backends.mysql', # 数据库的名字 'NAME': 'dfz', # 连接mysql数据库的用户名 'USER': 'root', # 连接mysql数据库的密码 'PASSWORD': 'root', # mysql数据库的主机地址 'HOST': '127.0.0.1', # mysql数据库的端口号 'PORT': '3306', } }
在Django中操作数据库:
在Django
中操作数据库有两种方式。第一种方式就是使用原生sql
语句操作,第二种就是使用ORM
模型来操作。这节课首先来讲下第一种。
在Django
中使用原生sql
语句操作其实就是使用python db api
的接口来操作。如果你的mysql
驱动使用的是pymysql
,那么你就是使用pymysql
来操作的,只不过Django
将数据库连接的这一部分封装好了,我们只要在settings.py
中配置好了数据库连接信息后直接使用Django
封装好的接口就可以操作了。示例代码如下:
# 使用django封装好的connection对象,会自动读取settings.py中数据库的配置信息 from django.db import connection # 获取游标对象 cursor = connection.cursor() # 拿到游标对象后执行sql语句 cursor.execute("select * from book") # 获取所有的数据 rows = cursor.fetchall() # 遍历查询到的数据 for row in rows: print(row)
以上的execute
以及fetchall
方法都是Python DB API
规范中定义好的。任何使用Python
来操作MySQL
的驱动程序都应该遵循这个规范。所以不管是使用pymysql
或者是mysqlclient
或者是mysqldb
,他们的接口都是一样的。更多规范请参考:https://www.python.org/dev/peps/pep-0249/。
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
语句的数据。
这篇关于Pycharm开发Django项目操作数据库的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-24MongoDB资料:新手入门完全指南
- 2024-12-20go-zero 框架的 RPC 服务 启动start和停止 底层是怎么实现的?-icode9专业技术文章分享
- 2024-12-19Go-Zero 框架的 RPC 服务启动和停止的基本机制和过程是怎么实现的?-icode9专业技术文章分享
- 2024-12-18怎么在golang中使用gRPC测试mock数据?-icode9专业技术文章分享
- 2024-12-15掌握PageRank算法核心!你离Google优化高手只差一步!
- 2024-12-15GORM 中的标签 gorm:"index"是什么?-icode9专业技术文章分享
- 2024-12-11怎么在 Go 语言中获取 Open vSwitch (OVS) 的桥接信息(Bridge)?-icode9专业技术文章分享
- 2024-12-11怎么用Go 语言的库来与 Open vSwitch 进行交互?-icode9专业技术文章分享
- 2024-12-11怎么在 go-zero 项目中发送阿里云短信?-icode9专业技术文章分享
- 2024-12-11怎么使用阿里云 Go SDK (alibaba-cloud-sdk-go) 发送短信?-icode9专业技术文章分享