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

98 篇文章 12 订阅

这里有一点要提的

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

逻辑操作:

使用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)

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

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT1995

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值