94.SQLAlchemy常用的数据类型介绍

该博客介绍了如何利用Python的SQLAlchemy库与MySQL数据库进行交互,包括创建数据库引擎、会话对象、定义数据模型,以及枚举类型的使用。同时展示了如何向数据库中插入数据。
from turtle import title
from sqlalchemy import create_engine, Column, Integer, String, Float, Enum, Boolean, DECIMAL, Text
from sqlalchemy import Date, DateTime, Time
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.dialects.mysql import LONGTEXT
from sqlalchemy.orm import sessionmaker
import enum # 枚举
from datetime import date # 年月日
from datetime import datetime #年月日时分秒
from datetime import time   # 时分秒

HOST = 'localhost'
PORT = 3306
DATA_BASE = 'first_sqlalchemy'
USER = "root"
PWD = 'root'
DB_URL = f'mysql+pymysql://{USER}:{PWD}@{HOST}:{PORT}/{DATA_BASE}'

# # 创建数据库引擎
# engine = create_engine(DB_URL)
# # 创建会话对象
# session = sessionmaker(engine)
# Base = declarative_base(engine)
engine = create_engine(DB_URL)
Base = declarative_base(engine)
Session = sessionmaker(engine)

#定义一个枚举类
class TagEnum(enum.Enum):
    python = "PYTHON2"
    flask = "FLASK2"
    django = "DJANGO"


class News(Base):
    __tablename__ = "news"
    id = Column(Integer, primary_key=True, autoincrement = True)
    price1 = Column(Float) #sqlalchemy不存在这个类,存储时候容易发生数据丢失的问题
    price2 = Column(DECIMAL(10,4))# 可以用此类代替Float,第一个参数代表10位数字,第二个参数代表小数点后有4位
    title = Column(String(50)) # 可以存储50个字符
    is_delete = Column(Boolean) # 布尔类型,对应数据库是tinyint
    tag1 = Column(Enum('PYTHON',"FLASK","DJANGO")) # 枚举常规写法,只能选择三种之一
    tag2 = Column(Enum(TagEnum))# 枚举的第二种写法,只能从TagEnum类中选择一个
    create_time1 = Column(Date)
    create_time2 = Column(DateTime)
    create_time3 = Column(Time)
    content1 = Column(Text)
    content2 = Column(LONGTEXT)


# 新增数据到表news
def updata():
    with Session() as session:
        a1 = News(price1 = 1000.0078,price2 = 1000.0078, title="测试数据", is_delete=False, tag1 = "PYTHON",tag2 = TagEnum.python,create_time1=date(2018,12,12),create_time2=datetime(2019,2,20,12,12,30),create_time3=time(hour=11,minute=12,second=12),content1="hello",content2="hfjkakfhasuf")
        session.add(a1)
        session.commit()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

想成为数据分析师的开发工程师

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

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

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

打赏作者

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

抵扣说明:

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

余额充值