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

这里有一点要提的

这个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:密码[email protected]: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)

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

发布了1312 篇原创文章 · 获赞 2429 · 访问量 185万+

猜你喜欢

转载自blog.csdn.net/qq78442761/article/details/104891289