![]()
![]()
![]()
![]()
![]()
![]()
#encoding: utf-8
from sqlalchemy import create_engine,Column,Integer,String,\
Float,Boolean,DECIMAL,Enum,Date,DateTime,Time,Text
from sqlalchemy.dialects.mysql import LONGTEXT
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
#python2没有枚举
#python3有枚举
import enum
HOSTNAME = '127.0.0.1'
PORT = 3306
DATABASE = 'first_sqlalchemy'
USERNAME = 'root'
PASSWORD = '123456'
#dialect+driver://username:password@host:port/database
DB_URI = "mysql+pymysql://{username}:{password}@{host}:{port}/" \
"{db}?charset=utf8".format(username=USERNAME,password=PASSWORD,host=HOSTNAME,port=PORT,db=DATABASE)
engine = create_engine(DB_URI)
Base = declarative_base(engine)
# Session = sessionmaker(engine)
# session = Session()
session = sessionmaker(engine)() #Session(**local_kw)
#定义一个自己的标签枚举类
class TagEnum(enum.Enum):
python = 'python'
flask = 'flask'
django = 'django'
class Article(Base):
__tablename__ = 'article'
id = Column(Integer,primary_key=True,autoincrement=True)
# price = Column(Float)
# is_delete = Column(Boolean)
# price = Column(DECIMAL(10,4))
# tag = Column(Enum('python','flask','django'))#原生
#自定义枚举类怎么映射数据库
# tag = Column(Enum(TagEnum))
# create_time = Column(Date)
# create_time = Column(DateTime)
# create_time = Column(Time)
# title = Column(String(50))
# content = Column(Text)
content_long = Column(LONGTEXT)
#删除类到数据库的映射数据
Base.metadata.drop_all()
Base.metadata.create_all()
#增加一条数据
# article = Article(price=10.293)
# session.add(article)
# session.commit()
#在单独增加一条数据
# article = Article(price=10.29334)
# session.add(article)
# session.commit()
#验证Boolean类型
# article = Article(is_delete=True)
# session.add(article)
# session.commit()
#验证DEcimal类型
# articel = Article(price = 999999.9999)
# session.add(articel)
# session.commit()
#验证Enum枚举类型
# article = Article(tag = 'python')
# session.add(article)
# session.commit()
#验证自定义Enum的传递
# article = Article(tag = TagEnum.flask)
# session.add(article)
# session.commit()
#验证Date类型
# from datetime import date
#
# article = Article(create_time=date(2018,9,22))
# session.add(article)
# session.commit()
#验证Datetime类型
# from datetime import datetime
#
# article = Article(create_time = datetime.now())
#
# session.add(article)
# session.commit()
#验证Time类型
# from datetime import datetime
# from datetime import time
#
# #datetime.now().time()取时间
# article = Article(create_time = datetime.now().time())
#
# session.add(article)
#
# session.commit()
#验证String类型
# article = Article(title = '文章标题')
# session.add(article)
# session.commit()
#验证Text类型
# article = Article(content = '文章标题aaaaaa')
# session.add(article)
# session.commit()
#验证LONGTEXT类型
article = Article(content_long = '文章标题aaaaaa')
session.add(article)
session.commit()