SQLAlchemy属性常用数据类型
初始文件
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column,Integer,String
from sqlalchemy.orm import sessionmaker
# 数据库的配置变量
# 地址
HOSTNAME = '127.0.0.1'
# 数据库
DATABASE = 'flask_demo'
# 端口
PORT = 3306
# 用户名和密码
USERNAME = 'root'
PASSWORD = 'root'
DB_URL = 'mysql+pymysql://{}:{}@{}:{}/{}'.format(USERNAME,PASSWORD,HOSTNAME,PORT,DATABASE)
engine = create_engine(DB_URL)
# 都要继承这个函数生成的基类
Base = declarative_base(engine)
class Article(Base):
__tablename__ = 'article2'
id = Column(Integer,primary_key=True,autoincrement=True) #传递参数Integer作为这个数据的一个类型约束,主键,自增
name = Column(String(50))
Base.metadata.drop_all()
Base.metadata.create_all()
Session = sessionmaker(bind=engine)
session = Session()
- 注意上面有一个drop_all()
- 当我们通过Base类创建这个表时,那么这张表会自动保存在Base类中,所以我们可以通过Base.metadata.drop_all()来删除通过Base类创建的所有表
- 同理我们也可以通过Base.metadata.create_all()来创建新表
- 将表删除之后在创建,避免麻烦,我们就不用注释掉Base.metadata.create_all()
sqlalchemy常用数据类型
- Integer:整形
- Float:浮点类型
- Boolean:传递True/False进去
- DECIMAL:定点类型
- enum:枚举类型
- Date:datetime.date()进去 2020,10,29
- DateTime:传递datetime.datetime()进去 2020,10,29,17,53,21
- Time:传递datetime.time()进去 17,53,21
- String:字符类型,使用时需要指定长度,区别于Text类型
- Text:文本类型
- LONGTEXT:长文本类型
我们每用到一个类型都要先导入他
from sqlalchemy import Column,Integer,String,DECIMAL,Boolean,Enum,DateTime
DECIMAL定点类型
- 我们创建一个price价格列
price = Column(DECIMAL(20,5))#前面的数是小数点前面的长度,后面的数是小数点后面的长度
- 然后在添加一个price的值
user = User(name = 'zaaaacki',price = 10.123)
- 运行代码: