### Column常用参数:
1. primary_key:设置某个字段为主键。
2. autoincrement:设置这个字段为自动增长的。
3. default:设置某个字段的默认值。在发表时间这些字段上面经常用。
4. nullable:指定某个字段是否为空。默认值是True,就是可以为空。
5. unique:指定某个字段的值是否唯一。默认是False。
6. onupdate:在数据更新的时候会调用这个参数指定的值或者函数。在第一次插入这条数据的时候,不会用onupdate的值,只会使用default的值。常用的就是`update_time`(每次更新数据的时候都要更新的值)。
7. name:指定ORM模型中某个属性映射到表中的字段名。如果不指定,那么会使用这个属性的名字来作为字段名。如果指定了,就会使用指定的这个值作为参数。这个参数也可以当作位置参数,在第1个参数来指定。
1 # coding:utf-8 2 # Author: liangjun.chen 3 4 from datetime import date 5 from datetime import datetime 6 from datetime import time 7 8 from sqlalchemy import create_engine, Column, Integer, String, Float, Boolean, DECIMAL, Enum, Date, DateTime, Time, Text 9 from sqlalchemy.dialects.mysql import LONGTEXT 10 11 from sqlalchemy.ext.declarative import declarative_base 12 from sqlalchemy.orm import sessionmaker 13 14 HOSTNAME = ‘127.0.0.1‘ 15 PORT = 3306 16 DATABASE = ‘sqlalchemy_first‘ 17 USERNAME = ‘root‘ 18 PASSWORD = ‘123456‘ 19 20 DB_URI = ‘mysql+pymysql://{username}:{password}@{host}:{port}/{dbname}?charset=utf8‘.format( 21 username=USERNAME, password=PASSWORD, host=HOSTNAME, port=PORT, dbname=DATABASE 22 ) 23 engine = create_engine(DB_URI) 24 Base = declarative_base(engine) 25 Session = sessionmaker(engine) 26 session = Session() 27 28 29 class Article(Base): 30 __tablename__ = ‘article‘ 31 id = Column(Integer, primary_key=True, autoincrement=True) 32 read_count = Column(Integer, default=0) 33 title = Column(String(50), nullable=False) 34 cellphone = Column(String(11), unique=True) 35 create_time = Column(DateTime, default=datetime.now) 36 update_time = Column(DateTime, onupdate=datetime.now, default=datetime.now) 37 title2 = Column(String(50), name=‘my_title‘) 38 39 Base.metadata.drop_all() 40 Base.metadata.create_all() 41 article = Article(read_count=100, title=‘python flask programming‘, cellphone=‘12345678909‘) 42 session.add(article) 43 # article = session.query(Article).first() 44 # article.update_time = datetime.now() 45 session.commit()