关键词搜索

源码搜索 ×
×

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

发布2020-03-16浏览5902次

详情内容

这里有一点要提的

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

逻辑操作:

使用create_engine创建数据库连接,

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

构造一个declarative_base()的基类。

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

最后使用metedate.create_all进行创建

源码如下:

  1. from sqlalchemy import create_engine, Integer, String, Float
  2. from sqlalchemy.orm import sessionmaker
  3. from sqlalchemy.ext.declarative import declarative_base
  4. from sqlalchemy import Column
  5. #创建数据库连接
  6. engine = create_engine("mysql+pymysql://root:密码xxxxxxx@122.51.245.141:3306/lagou?charset=utf8")
  7. #操作数据库前创建session
  8. Session = sessionmaker(bind=engine)
  9. #声明一个基类
  10. Base = declarative_base()
  11. class LagouTables(Base):
  12. __tablename__ = 'lagou_data'
  13. #id,主键并且自动增长
  14. id = Column(Integer, primary_key=True, autoincrement=True)
  15. #岗位ID,非空字段
  16. positionID = Column(Integer, nullable=True)
  17. # 经度
  18. longitude = Column(Float, nullable=False)
  19. # 纬度
  20. latitude = Column(Float, nullable=False)
  21. # 岗位名称
  22. positionName = Column(String(length=50), nullable=False)
  23. # 工作年限
  24. workYear = Column(String(length=20), nullable=False)
  25. # 学历
  26. education = Column(String(length=20), nullable=False)
  27. # 岗位性质
  28. jobNature = Column(String(length=20), nullable=True)
  29. # 公司类型
  30. financeStage = Column(String(length=30), nullable=True)
  31. # 公司规模
  32. companySize = Column(String(length=30), nullable=True)
  33. # 业务方向
  34. industryField = Column(String(length=30), nullable=True)
  35. # 所在城市
  36. city = Column(String(length=10), nullable=False)
  37. # 岗位标签
  38. positionAdvantage = Column(String(length=200), nullable=True)
  39. # 公司简称
  40. companyShortName = Column(String(length=50), nullable=True)
  41. # 公司全称
  42. companyFullName = Column(String(length=200), nullable=True)
  43. # 公司所在区
  44. district = Column(String(length=20), nullable=True)
  45. # 公司福利标签
  46. companyLabelList = Column(String(length=200), nullable=True)
  47. # 工资
  48. salary = Column(String(length=20), nullable=False)
  49. # 抓取日期
  50. crawl_date = Column(String(length=20), nullable=False)
  51. if __name__ == '__main__':
  52. # 创建数据表
  53. LagouTables.metadata.create_all(engine)

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

相关技术文章

点击QQ咨询
开通会员
返回顶部
×
微信扫码支付
微信扫码支付
确定支付下载
请使用微信描二维码支付
×

提示信息

×

选择支付方式

  • 微信支付
  • 支付宝付款
确定支付下载