seo网站快速排名软件,开发公司已经卖出生地,自己怎么做可以让百度收录的网站,湖南企业推广软件关于sqlalchemy的使用 说明一、sqlachemy总体使用思路二、安装与创建库、连结库三、创建表、增加数据四、查询记录五、更新或删除六、关联表定义七、一对多关联查询八、映射类定义与添加记录 说明
本教程所需软件及库python3.10、sqlalchemy安装与创建库、连结库创建表、增加数… 关于sqlalchemy的使用 说明一、sqlachemy总体使用思路二、安装与创建库、连结库三、创建表、增加数据四、查询记录五、更新或删除六、关联表定义七、一对多关联查询八、映射类定义与添加记录 说明
本教程所需软件及库python3.10、sqlalchemy安装与创建库、连结库创建表、增加数据查询记录更新或删除关联表定义
一、sqlachemy总体使用思路
在创建或连结后会返回engine(可以参考第二节安装与创建库、连结库)在创建表后会返回一个表名可以参考第三节创建表、增加数据使用时表名.方法.属性方法有insert,select,update,delecte与数据对接时conn engine.connect()—conn.execut(表方法返回的值)当数据库的数据发生改变时要提交(conn.commit())查询时要注意条件有两种方法where() | or_ | and_
二、安装与创建库、连结库
安装库
pip install sqlalchemy
#查看版本
sqlalchemy.__vetrsion__创建库或连结库
#连结或创建sqlite3
from sqlalchemy import create_engine
engine create_engine(sqlite:///db_path.db,echoTrue)
conn engine.connect()#连结或创建mysql
from sqlalchemy import create_engine
engine create_engine(mysql://user:pwdlocalhoast/库名,echoTrue)
conn engine.connect()注create_engine如果已经存在就连结如果不存在就创建。
在sqlalchemy执行sql语句
import sqlachemy
query sqlachemy.text(select * from 表名)#sql语句
engine sqlalchemy.create_engine(sqlite:///db_path.db,echoTrue)
conn engine.connect()
result_set conn.execute(query)
print(result_set.all())
conn.close()
engine.dispose()注以下代码engine代表创建或检查数据库conn代表连结数据库。
三、创建表、增加数据
创建表 创建表要用到sqlalchemy的三个库MetaData、Table、Column及类型代码
from sqlalchemy import MetaData,Table,Column
meta MetaData()
#Meta定义好的字段属性存在这所以第二个字段就要传它
var Table(
表名,meta,
Clolumn(字段名,sqlachemy.类型,primary_keyTrue),
.......
)
meta.create_all(engine)#创建表如果表已经存在了就不会创建如果不存在就创建。 2. sqlachemy字段类型
名称字段英文用法说明整形IntegerInteger存整数小数存小数字符StringString(字符个数)存字符日期DateDate存年月日––––
注主键primary_keyTrue,uniqueTrue唯一,unllableTrue不能为空。
增加数据insert 3.1 插入一条数据
var 表名.insert().values(字段名值......)
with engine.connect() as conn:conn.execute(var)conn.commit()1、连结conn以后执行数据库操作要用conn.execut(sqlachemy语句) 2、数据库数据有变要提交事务,conn.commit() 3、var 表名.insert().values(字段名值…)是新增数据的sqlachemy语句 4、 自增长是插一次它就增加一次它不管你是否成功 3.2 插入多条数据
var 表名.insert()
with engine.connect() as conn:conn.execute(var,[{字段名:value,.......},{字段名:value,.......},........])conn.commit()这个要用列表并且列表里放字典key是字段名value是对应的值
四、查询记录
sql查询语句
select * from 表名函数表达式
表名.select()结果获取
结果.fetchall()#获取所有数据
结果.fetchone()#获取第一条数据条件查询
表名.select().where(表名.c.字段名条件)
#一次只能有一个条件
#如果多个条件查询时在后面加.where(表名.c.字段名条件)and_(与)、or_(或)
from sqlalchemy.sql import and_,or_
表名.select().where(or_(条件,条件.....) | and_(条件,条件.....))
# 要在where中使用and_,or_
# and_,or_可以相互嵌套五、更新或删除
更新
表名.update().where(条件).values(字段名value)
#查询结果后再更新值一个values可以更新多条记录或所有记录取决于查询的结果删除
表名.delete().where(条件)
#查询结果后再删除可以删除多条记录或所有记录取决于查询的结果六、关联表定义
一对多关联(sqlachemy.ForeignKey(‘表名.id’))
import sqlalchemy
#创建表
mate sqlalchemy.MateData()
表名 sqlachemy.Table(表名,mate,sqlachemy.Column(字段名,sqlachemy.Integer,sqlachemy.ForeignKey(关联的表名.id),nullableFalse),)多对多
七、一对多关联查询
查询条件
imort sqlalchemy
join 关联表名.join(被关联表名,关联表名.c.id被关联表名.c.id)使用查询
imort sqlalchemy
join 关联表名.join(被关联表名,关联表名.c.id被关联表名.c.id)
#关联表和被关联表的信息都显示
query sqlalchemy.select(join).where(关联表或被关联表.字段value)
#只显示关联表或被关联表的信息
query sqlalchemy.select(被关联表名或关联表名).select_from(join).where(关联表或被关联表.字段value)
print(conn.execute(query).fetchall())八、映射类定义与添加记录
映射基础
from sqlalchemy.ext.declarative import declarative_base
Base declarative_base()class 类名(Base):__tablename__表名字段名 Column(类型,其它参数)......
#创建表
类名.metadata.create_all(engine) 利用类添加记录
from sqlalchemy.orm import sessionmakerSession sessionmaker(bindengine)session Session()
#上面的类名
#增加一条记录
var 类名(字段名value,......)#类名实例化
session.add(var)
session.commit()
#增加多条记录
varList [类名实例化列表]
session.add_all(varList)
session.commit()