SQLAlchemy列参数的使用

primary_key True 设置某个字段为主键。
autoincrement True 设置这个字段为自动增长的。
default :设置某个字段的默认值。在发表时间这些字段上面经 常用。
nullable :指定某个字段是否为空。默认值是 True ,就是可以为 空。
unique :指定某个字段的值是否唯一。默认是 False
onupdate :在数据更新的时候会调用这个参数指定的值或者函 数。在第一次插入这条数据的时候,不会用onupdate 的值,只 会使用default 的值。常用于是 update_time 字段(每次更新数据的 时候都要更新该字段值)。
name :指定 ORM 模型中某个属性映射到表中的字段名。如果不 指定,那么会使用这个属性的名字来作为字段名。如果指定了, 就会使用指定的这个值作为表字段名。

代码实现

db_util.py

# SQLAlchemy常见的数据类型
from sqlalchemy import create_engine
from sqlalchemy.orm import declarative_base,sessionmaker
# 数据库的变量
HOST = '127.0.0.1'
PORT = 3306
DATA_BASE = 'itbz'
USER = 'root'
PWD = '123456'
DB_URL = f'mysql+pymysql://{USER}:{PWD}@{HOST}:{PORT}/{DATA_BASE}'

# 创建引擎
engine = create_engine(DB_URL)
# 创建一个基类
Base = declarative_base()
Session = sessionmaker(engine)

main.py

# SQLAlchemy列参数的使用
from datetime import datetime
from sqlalchemy import Column,Integer,DateTime,String
from  db_util import Base,engine,Session

class News(Base):
    __tablename__='t_news2'
    id = Column(Integer,primary_key=True,autoincrement=True)
    phone = Column(String(11),unique=True)
    title = Column(String(32),nullable=False)
    read_count = Column(Integer,default=1)
    update_time = Column(DateTime,default=datetime.now,onupdate=datetime.now) # 当数据更新后,参数才会被修改
    create_time = Column(DateTime,default=datetime.now)

def create_data():
    new1 = News(phone='13612341234',title='测试列参数')

    with Session() as session:
        session.add(new1)
        session.commit()

# def create_data2():
#     # new1 = News(phone='13612341234',title='测试列参数') # 不允许重复
#     new1 = News(phone='13612341235') # title不能为空
#     with Session() as session:
#         session.add(new1)
#         session.commit()

def create_data3():
    with Session() as session:
        new1 = session.query(News).first()
        new1.read_count=2
        session.commit()

if __name__ == "__main__":
    # Base.metadata.create_all(engine)
    # create_data()
    create_data3()

执行结果:

创建表

 添加数据

手机号不能重复

 title不能为空

 更新update_time

 

相关推荐

  1. sqlalchemy expunge简单使用

    2024-03-27 11:14:02       14 阅读
  2. sqlalchemy bindparam简单使用

    2024-03-27 11:14:02       12 阅读
  3. Flask-SQLAlchemy使用【一】

    2024-03-27 11:14:02       15 阅读
  4. SQLAlchemy中query函数使用

    2024-03-27 11:14:02       16 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-27 11:14:02       14 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-27 11:14:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-27 11:14:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-27 11:14:02       18 阅读

热门阅读

  1. 代码签名证书可以修改签名者信息吗?

    2024-03-27 11:14:02       17 阅读
  2. Vue.js 中::v-deep

    2024-03-27 11:14:02       16 阅读
  3. vue this.$toast 失效问题汇总

    2024-03-27 11:14:02       19 阅读
  4. 英语口语 3.27

    2024-03-27 11:14:02       17 阅读
  5. C++ Lists(链表)基本用法

    2024-03-27 11:14:02       14 阅读
  6. Github 2024-03-26 开源项目日报 Top10

    2024-03-27 11:14:02       14 阅读