Python 之 sqlalchemy查询数据
admin
2023-07-11 15:24:36
0

表结果:

Python 之 sqlalchemy查询数据

Python 之 sqlalchemy查询数据

查询代码:

#Author Kang

import sqlalchemy
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column,Integer,String
from sqlalchemy.orm import sessionmaker

#创建对象的基类:
Base = declarative_base()

#定义User对象:
class User(Base):
    #表的名字:
    __tablename__ = 'user'

    #表的结构:
    userid = Column(Integer,primary_key=True)
    username = Column(String(20))
    age = Column(Integer)
    department = Column(String(20))

#初始化数据库连接
engine = create_engine("mysql+pymysql://kang:123456@10.3.152.35/test",encoding="utf-8")

#创建session类型
DBSession = sessionmaker(bind=engine)

#创建session对象
session = DBSession()

print("打印单条信息>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
#建立查询条件,并打印第一条信息
user_info = session.query(User).first()
print(user_info.userid,user_info.username,user_info.age,user_info.department)

#print("打印所所有人员信息>>>>>>>>>>>>>>>>>>>>>>>>")
#建立查询所有数据
#all_user = session.query(User).all()
#for i in all_user:
#   print(i.userid,i.username,i.age,i.department)

print("打印小于30岁的人员信息>>>>>>>>>>>>>>>>>>>>>")
#建立过滤条件查询,小于30岁的人(filter的使用)
age_info = session.query(User).filter(User.age<30).all()
for i in age_info:
    print(i.userid, i.username, i.age, i.department)

print("打印部门均为IT部的人员信息>>>>>>>>>>>>>>>>>>")
#建立过滤条件查询,部门是IT(filter_by的使用)
department_info = session.query(User).filter_by(department="IT").all()
for i in department_info:
    print(i.userid, i.username, i.age, i.department)

结果:

打印单条信息>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
3 MK 23 IT
打印小于30岁的人员信息>>>>>>>>>>>>>>>>>>>>>
3 MK 23 IT
6 CC 25 IT
8 JOHN 22 IT
15 Jack 23 FIN
打印部门均为IT部的人员信息>>>>>>>>>>>>>>>>>>
3 MK 23 IT
6 CC 25 IT
8 JOHN 22 IT

filter()和filter_by()的区别:

Filter: 可以像写 sql 的 where 条件那样写 > < 等条件,但引用列名时,需要通过 类名.属性名 的方式。
filter_by: 可以使用 python 的正常参数传递方法传递条件,指定列名时,不需要额外指定类名。,参数名对应名类中的属性名,但似乎不能使用 > < 等条件。
当使用filter的时候条件之间是使用“==",fitler_by使用的是"="。
Python 之 sqlalchemy查询数据

相关内容

热门资讯

快评|卫星互联网将如何改变生活... 近日,我国在西昌卫星发射中心使用长征二号丁运载火箭,成功将卫星互联网技术试验卫星发射升空。值得关注的...
1999元买一个“创世成员”,... 图片来源:网络 出品 | 搜狐科技 作者 | 张莹 自2026年6月1日起,天涯社区将正式启用tia...
用了40年的电脑,黄仁勋要推翻... “英伟达如果成功,它将成为继微软(PC时代)、苹果(移动互联网时代)之后,AI时代的第三个平台级垄断...
原创 时... 2019年马云退休后,数年没有和外国元首互动的阿里巴巴,最近重启“民间外交”。 浙江当地官方媒体报道...
生命是如何产生的?如果宇宙在熵... 前言 生命为何能从无序中诞生?宇宙不是应该越来越混乱吗?这个问题困扰了无数人,也为神创论留下了舞...
美伊谈判濒临破裂之际,伊朗议长... 因为以色列持续对黎巴嫩进行军事打击,伊朗宣布暂停同美国的谈判。不过美国总统特朗普称,对话仍在继续。谈...
罕见!以军政策发生“重大转变” 新华社北京6月1日电 题:罕见纵深推进,以军对黎行动会否搅动美伊谈判新华社记者刘品然 阚静文 席玥以...
山西太原发现一处新石器遗址,出... 山西省太原市文物保护研究院协同相关科研机构,近期在太原市阳曲县西盘威村发现一处新石器时代重要遗址——...
伊媒发布穆杰塔巴罕见照片 伊朗塔斯尼姆通讯社6月1日发布了一张最高领袖穆杰塔巴的照片。照片中,穆杰塔巴面露笑容,抱着一个婴儿。...
福建“泡药杨梅”曝光后,浙江杨... 这两天,浙江本地杨梅少量进入市场。虽然受到此前福建 “泡药杨梅” 事件影响,市场整体销量相比去年同期...