Python数据库操作全攻略:从连接到ORM实践

点击上方蓝字关注我们

picture.image

Python操作数据库

picture.image

在现代软件开发中,数据库是存储和检索数据的核心组件。Python提供了多种机制来与数据库进行交云,包括但不限于原生支持的SQLite,以及通过第三方库支持的MySQL、PostgreSQL等。本节将深入探讨如何通过Python操作数据库,涵盖从建立连接到处理查询结果的全过程。

picture.image

picture.image

  1. 数据库连接

picture.image

与数据库的交互首先从建立连接开始。Python使用connect()方法创建数据库连接对象,该方法的参数依赖于所使用的数据库。以下是使用SQLite和MySQL的示例。

  • SQLite :

SQLite是一个轻量级的数据库,它的数据库是存储在本地文件中的。Python标准库包含了sqlite3模块,使得与SQLite数据库的交互变得简单。

  
import sqlite3  
connection = sqlite3.connect('example.db')

此代码片段创建了一个名为example.db的SQLite数据库文件,并打开了与之的连接。

  • MySQL :

对于MySQL数据库,可以使用mysql-connector-python包来连接数据库。首先需要安装这个包(pip install mysql-connector-python)。

  
import mysql.connector  
connection = mysql.connector.connect(  
    host="localhost",  
    user="yourusername",  
    password="yourpassword",  
    database="yourdatabase"  
)

该代码片段使用了数据库的地址、用户名、密码和数据库名称来建立连接。

picture.image

  1. 执行SQL语句

picture.image

一旦与数据库建立了连接,就可以执行SQL语句了。这包括数据定义语言(DDL)操作如创建表,数据操作语言(DML)操作如插入记录,以及数据查询语言(DQL)操作如查询数据。

  
cursor = connection.cursor()  
cursor.execute('''CREATE TABLE students (id INTEGER PRIMARY KEY, name TEXT, grade TEXT)''')  
connection.commit()

这个例子中,首先创建了一个游标对象,然后通过游标执行了一个SQL命令来创建一个新表studentscommit()方法用于提交事务,确保SQL命令的更改被保存。

picture.image

  1. 处理查询结果

picture.image

执行查询后,可以使用游标对象检索查询结果。

  
cursor = connection.cursor()  
cursor.execute('''CREATE TABLE students (id INTEGER PRIMARY KEY, name TEXT, grade TEXT)''')  
connection.commit()

fetchall()方法获取查询结果中的所有行,然后可以遍历这些行来访问每条记录的数据。

picture.image

  1. 使用ORM工具

picture.image

对象关系映射(ORM)工具提供了一种高级的方法来操作数据库,允许开发者使用Python类而不是SQL语句来表示和操作数据。SQLAlchemy和Django ORM是Python社区中广泛使用的ORM框架。

  • SQLAlchemy 示例:
  
from sqlalchemy import create_engine  
engine = create_engine('sqlite:///example.db')  
from sqlalchemy.ext.declarative import declarative_base  
Base = declarative_base()

这段代码创建了一个连接到example.db数据库的引擎,并定义了一个基础类,之后可以用来定义数据库模型(类)。

  • Django ORM 示例:

Django框架内置了ORM工具,可以在Django项目的模型文件中定义模型。

  
from django.db import models  
  
class Student(models.Model):  
    name = models.CharField(max_length=100)  
    grade = models.CharField(max_length=10)

此模型定义了一个Student模型,包含namegrade字段。

picture.image

总结

picture.image

Python通过提供直接执行SQL语句的方式以及通过ORM工具操作数据库的方法,为数据库操作提供了灵活性和强大的功能。无论是直接使用SQL语句进行数据库操作,还是借助ORM工具简化数据操作,Python都能满足不同开发者的需求。通过了解和应用这些方法,可以有效地在Python应用程序中集成和利用数据库功能。

picture.image

更多内容请关注:

你好,我是呈予贝,坐标北京,专注于自动驾驶开发,探索AI在编程中的新应用,分享编程和AI编程的知识。

0
0
0
0
评论
未登录
暂无评论