电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Python流行ORM框架sqlalchemy的簡單使用

瀏覽:91日期:2022-06-15 09:20:09
安裝

http://docs.sqlalchemy.org

1、安裝

#進入虛擬環境#執行./python3 -m pip installimport sqlalchemyprint(sqlalchemy.__version__) # 1.1.15我這里使用的版本是1.1.15創建連接對象

http://docs.sqlalchemy.org/en/latest/orm/tutorial.html#connecting

from sqlalchemy import create_engine# 連接本地test數據庫engine = create_engine('mysql://root:root@localhost/test?charset=utf8')

運行時會出錯,因為需要驅動庫,默認會調用MySQLdb。

ImportError: No module named ’MySQLdb’

我們前面安裝了pymysql,因此完整的要這么寫:

engine = create_engine('mysql+pymysql://root:root@localhost/test?charset=utf8')簡單使用

SQL語句查詢

result = engine.execute('select * from news')print(result.fetchall())#[(1, ’本機新聞標題’), (2, ’今天的新聞’), (3, ’新聞標題1’), (4, ’新聞標題2’), (5, ’元組新聞1’), (6, ’元組新聞2’)]創建映射

既然我們用ORM,就是為了少寫甚至不寫SQL語句。

ORM是數據表和對象之間的映射。

http://docs.sqlalchemy.org/en/latest/orm/tutorial.html#declare-a-mapping

1、創建一個Infos.py文件,這個文件我們來做數據表的映射

from sqlalchemy.ext.declarative import declarative_baseBase = declarative_base()from sqlalchemy import Column, Integer, Stringclass News(Base):# 表名稱__tablename__ = ’news’# news表里id字段id = Column(Integer, primary_key=True, autoincrement=True)# news表里title字段title = Column(String(length=255), nullable=False)

News類就是我們數據表news的映射(字段:id、title)。

2、使用

from sqlalchemy import create_enginefrom mappers.Infos import Newsfrom sqlalchemy.orm import sessionmaker# 連接本地test數據庫engine = create_engine('mysql+pymysql://root:root@localhost/test?charset=utf8')# 創建會話session = sessionmaker(engine)mySession = session()# 查詢結果集result = mySession.query(News).all()print(result[0])

我們要注意最后的查詢結果,看看結果集中的元素長什么樣?^_^

<mappers.Infos.News object at 0x1050c6e80>

查詢處理的記錄都是對象。

各種查詢

只查詢第一條記錄

# 查詢第一條result = mySession.query(News).first()print(result.title) #打印對象屬性通過id字段查詢# 查詢id為2的result = mySession.query(News).filter_by(id=2).first()print(result.title)# 查詢id為2的result = mySession.query(News).filter(News.id==2).first()分頁查詢# 分頁查詢 0,2result = mySession.query(News).filter(News.id>1).limit(2).offset(0).all()print(result)自定義過濾條件# 自定義過濾條件result = mySession.query(News).filter(text('id>:id')).params(id=2).all()

根據主鍵查詢

result = mySession.query(News).get(3)print(result.title)新增和修改

# 新增news = News(title='新增測試標題')mySession.add(news)mySession.commit()#修改mySession.query(News).filter(News.id==7).update({'title':'修改之后的標題'})mySession.commit()Python利用sqlacodegen自動生成ORM實體類示例

前面方法我們是手動創建了一個名叫Infos.py的文件,然后定義了一個News類,把這個類作為和我們news數據表的映射。

from sqlalchemy.ext.declarative import declarative_baseBase = declarative_base()from sqlalchemy import Column, Integer, Stringclass News(Base):# 表名稱__tablename__ = ’news’# news表里id字段id = Column(Integer, primary_key=True, autoincrement=True)# news表里title字段title = Column(String(length=255), nullable=False)

現在我們來看看sqlacodegen這個工具,自動生成像上面那樣的類文件。

1、安裝sqlacodegen

#cd 項目虛擬環境#執行./python3 -m pip install sqlacodegen

2、使用sqlacodegen生成案列

#注意還是在虛擬環境目錄下執行./sqlacodegen --tables fund --outfile ../../mappers/Found.py mysql+pymysql://root:root@localhost/test?charset=utf8

到此這篇關于Python流行ORM框架sqlalchemy的文章就介紹到這了,更多相關Python ORM框架sqlalchemy內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 深圳货架厂_仓库货架公司_重型仓储货架_线棒货架批发-深圳市诺普泰仓储设备有限公司 | SDG吸附剂,SDG酸气吸附剂,干式酸性气体吸收剂生产厂家,超过20年生产使用经验。 - 富莱尔环保设备公司(原名天津市武清县环保设备厂) | 哲力实业_专注汽车涂料汽车漆研发生产_汽车漆|修补油漆品牌厂家 长沙一级消防工程公司_智能化弱电_机电安装_亮化工程专业施工承包_湖南公共安全工程有限公司 | 本安接线盒-本安电路用接线盒-本安分线盒-矿用电话接线盒-JHH生产厂家-宁波龙亿电子科技有限公司 | 亚洲工业智能制造领域专业门户网站 - 亚洲自动化与机器人网 | 儿童语言障碍训练-武汉优佳加感统文化发展有限公司 | 专业深孔加工_东莞深孔钻加工_东莞深孔钻_东莞深孔加工_模具深孔钻加工厂-东莞市超耀实业有限公司 | 电机修理_二手电机专家-河北豫通机电设备有限公司(原石家庄冀华高压电机维修中心) | 纯水电导率测定仪-万用气体检测仪-低钠测定仪-米沃奇科技(北京)有限公司www.milwaukeeinst.cn 锂辉石检测仪器,水泥成分快速分析仪-湘潭宇科分析仪器有限公司 手术室净化装修-手术室净化工程公司-华锐手术室净化厂家 | 英国公司注册-新加坡公司注册-香港公司开户-离岸公司账户-杭州商标注册-杭州优创企业 | 电机修理_二手电机专家-河北豫通机电设备有限公司(原石家庄冀华高压电机维修中心) | 合肥展厅设计-安徽展台设计-合肥展览公司-安徽奥美展览工程有限公司 | 课件导航网_ppt课件_课件模板_课件下载_最新课件资源分享发布平台 | 水平垂直燃烧试验仪-灼热丝试验仪-漏电起痕试验仪-针焰试验仪-塑料材料燃烧检测设备-IP防水试验机 | 钢衬玻璃厂家,钢衬玻璃管道 -山东东兴扬防腐设备有限公司 | 山东太阳能路灯厂家-庭院灯生产厂家-济南晟启灯饰有限公司 | 顺辉瓷砖-大国品牌-中国顺辉 | 管理会计网-PCMA初级管理会计,中级管理会计考试网站 | 股指期货-期货开户-交易手续费佣金加1分-保证金低-期货公司排名靠前-万利信息开户 | 中高频感应加热设备|高频淬火设备|超音频感应加热电源|不锈钢管光亮退火机|真空管烤消设备 - 郑州蓝硕工业炉设备有限公司 | 深圳富泰鑫五金_五金冲压件加工_五金配件加工_精密零件加工厂 | POM塑料_PBT材料「进口」聚甲醛POM杜邦原料、加纤PBT塑料报价格找利隆塑料 | 河北凯普威医疗器材有限公司,高档轮椅系列,推车系列,座厕椅系列,协步椅系列,拐扙系列,卫浴系列 | 撕碎机_轮胎破碎机_粉碎机_回收生产线厂家_东莞华达机械有限公司 | 橡胶弹簧|复合弹簧|橡胶球|振动筛配件-新乡市永鑫橡胶厂 | 空调风机,低噪声离心式通风机,不锈钢防爆风机,前倾皮带传动风机,后倾空调风机-山东捷风风机有限公司 | RV减速机-蜗轮蜗杆减速机-洗车机减速机-减速机厂家-艾思捷 | 高考志愿规划师_高考规划师_高考培训师_高报师_升学规划师_高考志愿规划师培训认证机构「向阳生涯」 | Eiafans.com_环评爱好者 环评网|环评论坛|环评报告公示网|竣工环保验收公示网|环保验收报告公示网|环保自主验收公示|环评公示网|环保公示网|注册环评工程师|环境影响评价|环评师|规划环评|环评报告|环评考试网|环评论坛 - Powered by Discuz! | 洁净实验室工程-成都手术室净化-无尘车间装修-四川华锐净化公司-洁净室专业厂家 | 蔡司三坐标-影像测量机-3D扫描仪-蔡司显微镜-扫描电镜-工业CT-ZEISS授权代理商三本工业测量 | 武汉森源蓝天环境科技工程有限公司-为环境污染治理提供协同解决方案 | 深圳美安可自动化设备有限公司,喷码机,定制喷码机,二维码喷码机,深圳喷码机,纸箱喷码机,东莞喷码机 UV喷码机,日期喷码机,鸡蛋喷码机,管芯喷码机,管内壁喷码机,喷码机厂家 | 实体店商新零售|微赢|波后|波后合作|微赢集团 | 东莞市踏板石餐饮管理有限公司_正宗桂林米粉_正宗桂林米粉加盟_桂林米粉加盟费-东莞市棒子桂林米粉 | 酵素生产厂家_酵素OEM_酵素加盟_酵素ODM_酵素原料厂家_厦门益力康 | 北京签证代办_签证办理_商务签证_旅游签证_寰球签证网 | 安全光栅|射频导纳物位开关|音叉料位计|雷达液位计|两级跑偏开关|双向拉绳开关-山东卓信机械有限公司 | 高防护蠕动泵-多通道灌装系统-高防护蠕动泵-www.bjhuiyufluid.com慧宇伟业(北京)流体设备有限公司 | 恒温振荡混匀器-微孔板振荡器厂家-多管涡旋混匀器厂家-合肥艾本森(www.17world.net) | 蒸压釜_蒸养釜_蒸压釜厂家-山东鑫泰鑫智能装备有限公司 |