SQLAlchemy之Column常用参数


Column常用参数

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

title = Column(String(50),name='title',nullable=False)

title = Column('my_title',String(50),nullable=False)
    

使用Column


from sqlalchemy import create_engine,Column,Integer,Float
from sqlalchemy import Boolean,DECIMAL,Enum,Date,DateTime,Time,String,Text
from sqlalchemy.dialects.mysql import LONGTEXT 
from sqlalchemy.ext.declarative import declarative_base 
from sqlalchemy.orm import sessionmaker 
from datetime import date 
from datetime import datetime 
from datetime import time 

#在Python3中才有enum这个模块,在python2中没有 
import enum 

HOSTNAME = '127.0.0.1' 
PORT = '3306' 
DATABASE = 'first_sqlalchemy' 
USERNAME = 'root' 
PASSWORD = 'root' 

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)() 

class News(Base): 
	__tablename__ = 'news' 
	id = Column(Integer,primary_key=True,autoincrement=True) 
	create_time = Column(DateTime,default=datetime.now) 
	read_count = Column(Integer,default=11) 
	title = Column(String(50),name='my_title',nullable=False) 
	telephone = Column(String(11),unique=True) 
	update_time = Column(DateTime,onupdate=datetime.now,default=datetime.now)
	
Base.metadata.drop_all() 
	
Base.metadata.create_all() 

news= News() 
session.add(news) 
session.commit() 


  • 6
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQLAlchemyColumn定义中常用的属性有: 1. type:指定列的数据类型,常用的数据类型有String、Integer、Boolean、DateTime等。例如: ```python from sqlalchemy import Column, String class User(Base): __tablename__ = 'users' id = Column(Integer, primary_key=True) name = Column(String(50)) ``` 2. primary_key:指定列是否为主键。例如: ```python from sqlalchemy import Column, Integer, String class User(Base): __tablename__ = 'users' id = Column(Integer, primary_key=True) name = Column(String(50)) ``` 3. unique:指定列的值是否唯一。例如: ```python from sqlalchemy import Column, Integer, String class User(Base): __tablename__ = 'users' id = Column(Integer, primary_key=True) name = Column(String(50), unique=True) ``` 4. nullable:指定列是否可以为NULL。例如: ```python from sqlalchemy import Column, Integer, String class User(Base): __tablename__ = 'users' id = Column(Integer, primary_key=True) name = Column(String(50), nullable=False) ``` 5. default:指定列的默认值。例如: ```python from sqlalchemy import Column, Integer, String, DateTime, func class User(Base): __tablename__ = 'users' id = Column(Integer, primary_key=True) name = Column(String(50), nullable=False) created_at = Column(DateTime, default=func.now()) ``` 6. index:指定列是否创建索引。例如: ```python from sqlalchemy import Column, Integer, String, Index class User(Base): __tablename__ = 'users' id = Column(Integer, primary_key=True) name = Column(String(50)) email = Column(String(50), unique=True, index=True) idx_name_email = Index('idx_name_email', name, email) ``` 7. server_default:指定数据库端默认值。例如: ```python from sqlalchemy import Column, Integer, String class User(Base): __tablename__ = 'users' id = Column(Integer, primary_key=True) name = Column(String(50)) status = Column(Integer, server_default='0') ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值