Python笔记-使用sqlalchemy根据类创建数据库表

Python笔记-使用sqlalchemy根据类创建数据库表这里有一点要提的这个 mysql pymysql 这个 mysql 会通过字符串导入对应的模块这里要预装下 mysql 模块 逻辑操作 使用 create engine 创建数据库连接 使用 sessionmaker 操作用于操作数据库的 session 构造一个 declarative base 的基类 构造一个子类设置数据库表中的各个域 最后使用 metedate create

这里有一点要提的

Python笔记-使用sqlalchemy根据类创建数据库表

这个mysql+pymysql,这个mysql会通过字符串导入对应的模块这里要预装下mysql模块:

Python笔记-使用sqlalchemy根据类创建数据库表

逻辑操作:

使用create_engine创建数据库连接,

使用sessionmaker操作用于操作数据库的session。

构造一个declarative_base()的基类。

构造一个子类设置数据库表中的各个域。

最后使用metedate.create_all进行创建

源码如下:

from sqlalchemy import create_engine, Integer, String, Float from sqlalchemy.orm import sessionmaker from sqlalchemy.ext.declarative import declarative_base from sqlalchemy import Column #创建数据库连接 engine = create_engine("mysql+pymysql://root:密码xxxxxxx@122.51.245.141:3306/lagou?charset=utf8") #操作数据库前创建session Session = sessionmaker(bind=engine) #声明一个基类 Base = declarative_base() class LagouTables(Base): __tablename__ = 'lagou_data' #id,主键并且自动增长 id = Column(Integer, primary_key=True, autoincrement=True) #岗位ID,非空字段 positionID = Column(Integer, nullable=True) # 经度 longitude = Column(Float, nullable=False) # 纬度 latitude = Column(Float, nullable=False) # 岗位名称 positionName = Column(String(length=50), nullable=False) # 工作年限 workYear = Column(String(length=20), nullable=False) # 学历 education = Column(String(length=20), nullable=False) # 岗位性质 jobNature = Column(String(length=20), nullable=True) # 公司类型 financeStage = Column(String(length=30), nullable=True) # 公司规模 companySize = Column(String(length=30), nullable=True) # 业务方向 industryField = Column(String(length=30), nullable=True) # 所在城市 city = Column(String(length=10), nullable=False) # 岗位标签 positionAdvantage = Column(String(length=200), nullable=True) # 公司简称 companyShortName = Column(String(length=50), nullable=True) # 公司全称 companyFullName = Column(String(length=200), nullable=True) # 公司所在区 district = Column(String(length=20), nullable=True) # 公司福利标签 companyLabelList = Column(String(length=200), nullable=True) # 工资 salary = Column(String(length=20), nullable=False) # 抓取日期 crawl_date = Column(String(length=20), nullable=False) if __name__ == '__main__': # 创建数据表 LagouTables.metadata.create_all(engine)

创建好后对应的数据库表如下:

Python笔记-使用sqlalchemy根据类创建数据库表

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/229644.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月16日 下午4:13
下一篇 2026年3月16日 下午4:14


相关推荐

  • 关于GPT

    关于GPT

    2026年3月16日
    4
  • web UI自动化之PO模式

    web UI自动化之PO模式PO是什么:PO模式,PageObject的缩写,页面对象,设计框架的思想,分层思想在PO下,应用程序的每一个页面都有一个对应的pageclass每一个pageclass维护着该web页的元素集和操作这些元素的方法pageclass中的方法命名最好根据对应的业务场景进行,例如通常登录后我们需要等待几秒钟PO的优势:PO提供了一种业务流程与页面元素操作分离的模式,这使得测试代码变得更加清晰页面对象与用例分离,使得我们更好的复用对象可复用的页面方法代码会变得更加优化更加有效的命名

    2022年6月3日
    43
  • @PostConstruct注解是Spring提供的?今天讲点不一样的「建议收藏」

    @PostConstruct注解是Spring提供的?今天讲点不一样的「建议收藏」前言我们在讲《Spring的Lifecycle》时提到,在Spring的使用中可以通过Lifecycle接口实现一些基于Spring容器生命周期逻辑。与此对照的就是通过@PostConstruct和@PreDestroy在Bean初始化或销毁时执行一些操作。很明显Spring的Lifecycle是基于容器的生命周期来处理逻辑,而@PostConstruct和@PreDestroy是基于Bean的生命周期来处理业务逻辑。这里很多朋友就产生了一个误解,以为@PostConstruct注解也是Spring提

    2022年10月21日
    3
  • 封装 继承 多态理解

    封装 继承 多态理解一 封装 1 定义封装 将类的某些信息隐藏在类内部 private 不允许外部程序直接访问 而是通过该类提供的公共属性 public 来实现对隐藏信息的操作和访问快捷键 prop TABpropfull TAB2 封装的好处 1 隐藏类的实现细节 2 只能通过规定属性访问数据 3 方便加入控制语句 4 方便修改实现二 继承 2 1 定义继承 一个类具有另一个类的属性和方法 这个类叫子类 派生类 另一个类叫父类 基类 超类 继承的关键符号 冒号

    2026年3月17日
    2
  • 即梦ai网页版无法使用怎么办

    即梦ai网页版无法使用怎么办

    2026年3月12日
    2
  • docker中启动mysql_win10启动项命令

    docker中启动mysql_win10启动项命令前提:已经装好了mysql镜像官方推荐必须使用密码故命令为:dockerrun–namemysql01-eMYSQL_ROOT_PASSWORD=123456-dmysql:5.5但是没有做端口开放,外界访问不到!故先停止这个容器:在启动加了端口映射的mysqldockerrun-p3306:3306–namemysql02-eMYSQL_R…

    2022年10月6日
    8

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号