当前位置:
首页 > Python基础教程 >
-
Python连接SQLite和MySQL数据库的方法
Python连接SQL和MySQL数据库的方法主要有以下几种:
1. **使用`sqlite3`库连接SQLite数据库**
SQLite是一个轻量级的关系型数据库,它不需要单独的服务器进程,并且允许对数据库文件的直接读写。Python标准库中的`sqlite3`模块提供了与SQLite数据库的接口。
示例:
对于MySQL数据库,Python没有内置的库,但可以使用第三方库如`pymysql`或`mysql-connector-python`来连接。
使用`pymysql`的示例:
3. **使用ORM框架(如SQLAlchemy)**
ORM(Object-Relational Mapping,对象关系映射)框架允许你使用面向对象的方式来操作数据库,而无需编写大量的SQL语句。SQLAlchemy是Python中最流行的ORM框架之一。
使用SQLAlchemy,你可以定义与数据库表对应的Python类,并使用这些类的方法来执行CRUD(创建、读取、更新、删除)操作。
示例:
最后,如果你对vb.net语言还有任何疑问或者需要进一步的帮助,请访问https://www.xin3721.com 本站原创,转载请注明出处:https://www.xin3721.com/Python/python49169.html
1. **使用`sqlite3`库连接SQLite数据库**
SQLite是一个轻量级的关系型数据库,它不需要单独的服务器进程,并且允许对数据库文件的直接读写。Python标准库中的`sqlite3`模块提供了与SQLite数据库的接口。
示例:
import sqlite3
# 连接到SQLite数据库
# 数据库文件是my_database.db,如果文件不存在,会自动在当前目录创建
conn = sqlite3.connect('my_database.db')
# 创建一个Cursor对象,并执行SQL语句
cursor = conn.cursor()
cursor.execute('CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)')
# 提交事务
conn.commit()
# 关闭连接
conn.close()
2. **使用`pymysql`或`mysql-connector-python`库连接MySQL数据库**# 连接到SQLite数据库
# 数据库文件是my_database.db,如果文件不存在,会自动在当前目录创建
conn = sqlite3.connect('my_database.db')
# 创建一个Cursor对象,并执行SQL语句
cursor = conn.cursor()
cursor.execute('CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)')
# 提交事务
conn.commit()
# 关闭连接
conn.close()
对于MySQL数据库,Python没有内置的库,但可以使用第三方库如`pymysql`或`mysql-connector-python`来连接。
使用`pymysql`的示例:
import pymysql
# 创建连接
conn = pymysql.connect(host='localhost', user='user', password='passwd', db='db')
# 创建一个游标对象 cursor
cursor = conn.cursor()
# 定义要执行的SQL语句
sql = "SELECT `id`, `password` FROM `users` WHERE `email`=%s"
# 执行SQL语句
cursor.execute(sql, ('webmaster@python.org',))
# 获取单条查询结果
result = cursor.fetchone()
print(result)
# 关闭游标和连接
cursor.close()
conn.close()
使用`mysql-connector-python`的示例与之类似,只是导入的库和连接方法略有不同。# 创建连接
conn = pymysql.connect(host='localhost', user='user', password='passwd', db='db')
# 创建一个游标对象 cursor
cursor = conn.cursor()
# 定义要执行的SQL语句
sql = "SELECT `id`, `password` FROM `users` WHERE `email`=%s"
# 执行SQL语句
cursor.execute(sql, ('webmaster@python.org',))
# 获取单条查询结果
result = cursor.fetchone()
print(result)
# 关闭游标和连接
cursor.close()
conn.close()
3. **使用ORM框架(如SQLAlchemy)**
ORM(Object-Relational Mapping,对象关系映射)框架允许你使用面向对象的方式来操作数据库,而无需编写大量的SQL语句。SQLAlchemy是Python中最流行的ORM框架之一。
使用SQLAlchemy,你可以定义与数据库表对应的Python类,并使用这些类的方法来执行CRUD(创建、读取、更新、删除)操作。
示例:
from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
Base = declarative_base()
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
name = Column(String)
age = Column(Integer)
# 创建引擎和会话
engine = create_engine('sqlite:///my_database.db')
Session = sessionmaker(bind=engine)
session = Session()
# 创建表
Base.metadata.create_all(engine)
# 添加数据
new_user = User(name='Alice', age=25)
session.add(new_user)
session.commit()
# 查询数据
users = session.query(User).all()
for user in users:
print(user.name, user.age)
# 关闭会话
session.close()
请注意,以上只是简单的示例,实际应用中可能需要处理更复杂的逻辑和异常。在选择连接数据库的方法时,应根据项目需求和个人偏好来选择最适合的方法。from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
Base = declarative_base()
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
name = Column(String)
age = Column(Integer)
# 创建引擎和会话
engine = create_engine('sqlite:///my_database.db')
Session = sessionmaker(bind=engine)
session = Session()
# 创建表
Base.metadata.create_all(engine)
# 添加数据
new_user = User(name='Alice', age=25)
session.add(new_user)
session.commit()
# 查询数据
users = session.query(User).all()
for user in users:
print(user.name, user.age)
# 关闭会话
session.close()
最后,如果你对vb.net语言还有任何疑问或者需要进一步的帮助,请访问https://www.xin3721.com 本站原创,转载请注明出处:https://www.xin3721.com/Python/python49169.html
栏目列表
最新更新
python爬虫及其可视化
使用python爬取豆瓣电影短评评论内容
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
uniapp/H5 获取手机桌面壁纸 (静态壁纸)
[前端] DNS解析与优化
为什么在js中需要添加addEventListener()?
JS模块化系统
js通过Object.defineProperty() 定义和控制对象
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比