Column常用的参数

#encoding: utf-8

from sqlalchemy import create_engine,Column,Integer,String,DateTime
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker

HOSTNAME = '127.0.0.1'

PORT = 3306

DATABASE = 'first_sqlalchemy'

USERNAME = 'root'

PASSWORD = '123456'

#dialect+driver://username:password@host:port/database
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)()

from datetime import datetime


class Article(Base):
    __tablename__ = 'article'
    id = Column(Integer,primary_key=True,autoincrement=True)

    #name的用处就是更改在title在数据库中的名字,就是其别名
    title = Column(String(50),nullable=False,name='article_title')

    describe = Column(String(200),unique=True,nullable=False)

    read_count = Column(Integer,default=0)

    #onupdate,只有更新数据的时候才有用
    update_time = Column(DateTime,onupdate=datetime.now,default=datetime.now)

    create_time = Column(DateTime,default=datetime.now)

Base.metadata.drop_all()

Base.metadata.create_all()


# article = Article(title = '武动乾坤')
# session.add(article)
# session.commit()

article = Article(title = '武动乾坤',describe = 'wuwuwuwuwuwuwu')
session.add(article)
session.commit()


#验证下ondate的作用

# article = session.query(Article).first()
# article.title = '斗破苍穹'
# session.commit()

 

posted @ 2018-09-22 22:14  python成长中  阅读(8930)  评论(1编辑  收藏  举报