Flask框架之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)
    


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

发布了354 篇原创文章 · 获赞 4 · 访问量 7800

猜你喜欢

转载自blog.csdn.net/weixin_44733660/article/details/104066220
今日推荐