2023年7月20日发(作者:)
python连数据库with⽅法_⾃我总结:连接数据库的集中常⽤⽅法1、django⾃带ORM框架和三⽅库⾃带ORM框架略==============================================如果django的ORM框架在功能或者性能上达不到要求那么也可以通过原⽣的SQl查询来代替ORM框架的⼯作django框架中如何写原⽣sql代码1、连接数据库并获取游标from import connections,connectioncon=() #连接default数据库并获取游标con=connections['dafault'].cursor()con=connections['backend'].cursor() #连接backend对应的数据库并获取游标2、编写sql代码('sql代码') #sql代码要⽤引号包起来,同时如果存在字符串格式化,要⽤ 百分号%s 占位符格式 ⽽不⽤ f'{}' 格式3、获取数据库返回结果result=() #获取⼀个结果result=ll() #获取所有结果result=any() #获取多个结果from import connectionsdef data_bar(request):names, totals = [], []# connections['default'] <==> connectionwith connections['default'].cursor() as cursor:e('select name, total from tb_agent t1 '' left outer join '' (select agentid, count(agentid) as total '' from tb_agent_estate group by agentid) t2 '' on d = d')for row in ll():(row[0])(row[1])return JsonResponse({'x_data': names, 'y_data': totals})2、python中最著名的SQLAlchermy ORM框架第⼀步,导⼊SQLAlchemy,并初始化DBSession:# 导⼊:from sqlalchemy import Column, String, create_enginefrom import sessionmakerfrom ative import declarative_base# 创建对象的基类:Base = declarative_base()# 定义User对象:class User(Base):# 表的名字:__tablename__ = 'user'# 表的结构:id = Column(String(20), primary_key=True)name = Column(String(20))# 初始化数据库连接:engine = create_engine('mysql+mysqlconnector://root:password@localhost:3306/test')# 创建DBSession类型:DBSession = sessionmaker(bind=engine)create_engine()⽤来初始化数据库连接。SQLAlchemy⽤⼀个字符串表⽰连接信息:'数据库类型+数据库驱动名称://⽤户名密码@机器地址:端⼝号/数据库名'第⼆步:创建模型对象,并将其映射到数据库表中# 创建session对象:session = DBSession()# 创建新User对象:new_user = User(id='5', name='Bob')# 添加到session:(new_user)# 提交即保存到数据库:()# 关闭session:()我们还可对数据库的表进⾏增删改查3、pymysql、pymongodb、pysqlalchermy等三⽅库以pymysql为例import pymysql #导⼊ pymysql#打开数据库连接db= t(host="localhost",user="root",password="123456",db="test",port=3307)# 使⽤cursor()⽅法获取操作游标cur = ()#1.查询操作# 编写sql 查询语句 user 对应我的表名sql = "select * from user"try:e(sql) #执⾏sql语句results = ll() #获取查询的所有记录print("id","name","password")#遍历结果for row in results :id = row[0]name = row[1]password = row[2]print(id,name,password)except Exception as e:raise efinally:() #关闭连接注意:所有对数据库的写操作需要在e(sql) 之后加⼊提交事务命令——()
发布者:admin,转转请注明出处:http://www.yc00.com/news/1689826476a289010.html
评论列表(0条)