#encoding: utf-8

from sqlalchemy import create_engine,Column,Integer,String,\
Float,Boolean,DECIMAL,Enum,Date,DateTime,Time,Text
from sqlalchemy.dialects.mysql import LONGTEXT
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker #python2没有枚举
#python3有枚举
import enum HOSTNAME = '127.0.0.1' PORT = 3306 DATABASE = 'first_sqlalchemy' USERNAME = 'root' PASSWORD = '' #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)
# session = Session() session = sessionmaker(engine)() #Session(**local_kw) #定义一个自己的标签枚举类
class TagEnum(enum.Enum):
python = 'python'
flask = 'flask'
django = 'django' class Article(Base):
__tablename__ = 'article'
id = Column(Integer,primary_key=True,autoincrement=True)
# price = Column(Float)
# is_delete = Column(Boolean)
# price = Column(DECIMAL(10,4)) # tag = Column(Enum('python','flask','django'))#原生 #自定义枚举类怎么映射数据库
# tag = Column(Enum(TagEnum)) # create_time = Column(Date) # create_time = Column(DateTime) # create_time = Column(Time) # title = Column(String(50)) # content = Column(Text) content_long = Column(LONGTEXT)
#删除类到数据库的映射数据
Base.metadata.drop_all() Base.metadata.create_all() #增加一条数据 # article = Article(price=10.293)
# session.add(article)
# session.commit() #在单独增加一条数据
# article = Article(price=10.29334)
# session.add(article)
# session.commit() #验证Boolean类型
# article = Article(is_delete=True)
# session.add(article)
# session.commit() #验证DEcimal类型
# articel = Article(price = 999999.9999)
# session.add(articel)
# session.commit() #验证Enum枚举类型
# article = Article(tag = 'python')
# session.add(article)
# session.commit() #验证自定义Enum的传递
# article = Article(tag = TagEnum.flask)
# session.add(article)
# session.commit() #验证Date类型
# from datetime import date
#
# article = Article(create_time=date(2018,9,22))
# session.add(article)
# session.commit() #验证Datetime类型
# from datetime import datetime
#
# article = Article(create_time = datetime.now())
#
# session.add(article)
# session.commit() #验证Time类型
# from datetime import datetime
# from datetime import time
#
# #datetime.now().time()取时间
# article = Article(create_time = datetime.now().time())
#
# session.add(article)
#
# session.commit() #验证String类型 # article = Article(title = '文章标题')
# session.add(article)
# session.commit() #验证Text类型
# article = Article(content = '文章标题aaaaaa')
# session.add(article)
# session.commit() #验证LONGTEXT类型
article = Article(content_long = '文章标题aaaaaa')
session.add(article)
session.commit()

sqlalchemy的常用字段的更多相关文章

  1. SQL常用字段类型

    中文常用字段类型 1.   名称类    nvarchar(10) 2.   数量       int 3.   时间      date 4.   货币      money 5.   编号     ...

  2. sqlAlchemy 按DateTime字段的年或月进行group_by查询

    一.根据”create_date“查询每天的数据 1.查询2016年5月每天的数据 session.query(extract('day', User.create_date).label('day' ...

  3. ORM(二)常用字段小记

    常用字段类型: AutoField:字段自增,多用于ID主键字段,每个表中只能有一个AutoField字段类型. id = models.AutoField(primary_key=True) # 设 ...

  4. Django聚合分组查询、常用字段

    首先回顾sql中聚合和分组的概念: 如果没有分组,会把整张表作为一个大组,查询字段必须是聚合结果:如果有分组,分组之后,必须要使用聚合的结果作为having的条件. 聚合查询 聚合:aggregate ...

  5. Django ORM中常用字段和参数

    一些说明: 表myapp_person的名称是自动生成的,如果你要自定义表名,需要在model的Meta类中指定 db_table 参数,强烈建议使用小写表名,特别是使用MySQL作为后端数据库时. ...

  6. Django ORM 常用字段和参数

    Django ORM 常用字段和参数 一:常用字段 AutoField int自增列,必须填入参数 primary_key=True.当model中如果没有自增列,则自动会创建一个列名为id的列. I ...

  7. ORM常用字段和参数

    目录: ORM常用字段和参数

  8. k8s学习笔记之五:Pod资源清单spec字段常用字段及含义

    第一章.前言 在上一篇博客中,我们大致简述了一般情况下资源清单的格式,以及如何获得清单配置的命令帮助,下面我们再讲解下清单中spec字段中比较常见的字段及其含义 第二章.常用字段讲解 spec.con ...

  9. ORM常用字段介绍

    Django中的ORM Django项目使用MySQL数据库 1. 在Django项目的settings.py文件中,配置数据库连接信息: DATABASES = { "default&qu ...

随机推荐

  1. 【JZOJ5605】【NOI2018模拟3.26】Arg

    题目描述 给出一个长度为 m 的序列 A, 请你求出有多少种 1...n 的排列, 满足 A 是它的一个 LIS. 解题思路 如何求出一个序列的LIS? 对于二分的方法,每次插入一个数,将它放到第一个 ...

  2. mysql优化(下)

    优化SQL语句:(1)不要使用   select  *(2)尽量在where字段上添加索引:(3)模糊查询中%前置不能使用索引,比如  like ‘%a’;(4)使用or语句时,两侧语句都有索引时才使 ...

  3. js中prototype和constructor的认识

    最初对js中 object.constructor 的认识: 我们都知道,在JS中有一个function的东西.一般人们叫它函数.比如下面的代码 function Person(name)    {  ...

  4. hdu 5810 Balls and Boxes 二项分布

    Balls and Boxes Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)T ...

  5. 项目部署中,tomcat报java.lang.OutOfMemoryError: PermGen space

    原因: PermGen space的全称是Permanent Generation space,是指内存的永久保存区域,这块内存主要是被JVM存放Class和Meta信息的,Class在被Loader ...

  6. python数据分析-数据导入

    1.导入CSV格式数据 import pandas data = pandas.read_csv("C:\\Users\\zhaosai\\Desktop\\进击的DBA\\谁说菜鸟不会数据 ...

  7. C++中void和void*指针的含义 (指针类型的含义)

    转载自:http://blog.csdn.net/lee_shuai 指针有两个属性:指向变量/对象的地址和长度,但是指针只存储地址,长度则取决于指针的类型:编译器根据指针的类型从指针指向的地址向后寻 ...

  8. Linux下压缩和解压命令

    http://man.linuxde.net/tar

  9. sentinel.conf样例

    #禁止用localhost与127.0.0.1# Example sentinel.conf # 哨兵sentinel实例运行的端口 默认26379port 26379 # 哨兵sentinel的工作 ...

  10. eclipse 编辑器支持 Code Minings(代码挖掘)功能

    Java 编辑器支持 Code Minings 功能 Java 编辑器现在可以在 Java 元素的上方以“装饰文本”的形式显示实现和引用的数量,即 Code Minings(代码挖掘)功能 启用路径: ...