这是作者在网上看到的方法,可以代码直接创建表,所以这里作者分享一下,以便于后续自己的运用,代码如下:
from datetime import datetime
from sqlalchemy import Column, String, Integer, Text, create_engine, TIMESTAMP
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
class LouZhuInfo(Base):
"""define louzhu item"""
__tablename__ = 'louzhu'
id = Column(Integer, primary_key=True)
lz_name = Column(String(255))
lz_id = Column(String(255))
lz_level = Column(String(255))
title = Column(String(255))
create_time = Column(String(255))
url = Column(String(255))
pages = Column(String(255))
class CengZhuInfo(Base):
"""define cengzhu item"""
__tablename__ = 'cengzhu'
id = Column(Integer, primary_key=True)
czhu_name = Column(String(255))
czhu_id = Column(String(255))
czhu_level = Column(String(255))
content = Column(Text)
ccreate_time = Column(String(255))
tiezi_num = Column(String(255))
picture = Column(String(255))
class News(Base):
"""define news item"""
__tablename__ = 'yq_news'
id = Column(Integer, primary_key=True)
url = Column(String(500), doc=u"主页url")
source = Column(String(1000), doc=u"来源")
web = Column(String(1000), doc=u"采集网站")
title = Column(String(1000), doc=u"新闻标题")
column = Column(String(510), doc=u"专栏")
author = Column(String(255), doc=u"作者")
content = Column(Text, doc=u"正文")
forward_amount = Column(Integer, doc=u"转发量")
read_amount = Column(Integer, doc=u"阅读量")
comment_amount = Column(Integer, doc=u"评论量")
pub_time = Column(TIMESTAMP)
create_time = Column(TIMESTAMP, nullable=False, default=str(datetime.now()))
update_time = Column(TIMESTAMP, nullable=False, onupdate=str(datetime.now()))
if __name__ == "__main__":
engine = create_engine("mysql+mysqlconnector://root:@IP:3306/test", max_overflow=5)
DBSession = sessionmaker(engine)
session = DBSession()
Base.metadata.create_all(engine)
session.commit()
运行即可。