#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. nodejs+mysql 批量更新

    没办法,只能通过循环一次次更新: var updateMysql = function(){ data = excel[0].data; for(var i=1; i<data.length; ...

  2. psd缩略图生成上传解决方案

    第一点:Java代码实现文件上传 FormFile file = manform.getFile(); String newfileName = null; String newpathname =  ...

  3. luogu 3857 [TJOI2008]彩灯 线性基

    可以将每一个开关控制的灯的序列看作是0/1组成的二进制. 由于灯的开和关是满足异或的性质的,所以直接求一下线性基大小即可. 答案为 $2^{size}.$ #include <cstdio> ...

  4. 灰度图像--图像分割 Marr-Hildreth算子(LoG算子)

    学习DIP第49天 转载请标明本文出处:*http://blog.csdn.net/tonyshengtan *,出于尊重文章作者的劳动,转载请标明出处!文章代码已托管,欢迎共同开发: https:/ ...

  5. 简单消息监听容器--SimpleMessageListenerContainer

    这个类非常强大,我们可以对他做很多设置,对于消费者的配置项,这个类都可以满足监听队列(多个队列).自动启动.自动声明功能可以设置事务特性.事务管理器.事务属性.事务容量(并发).是否开启事务.回滚消息 ...

  6. c++ gdb调试的基本使用

    https://blog.csdn.net/zdy0_2004/article/details/80102076

  7. Linux常用指令grep(搜索过滤)

    Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expression Print,表示全局正则表达 ...

  8. redis如何清空当前缓存和所有缓存

    Windows环境下使用命令行进行redis缓存清理1.redis安装目录下输入cmd2.redis-cli -p 端口号3.flushdb    清除当前数据库缓存4.flushall     清除 ...

  9. router 配置按需加载对应的组件,配置active

    const routes = [ { path: '/', component: App, children: [ {path: '/index/:type', name: 'index', comp ...

  10. c#阿里云短信验证码

    发送验证码 private static void SendAcs(string mobile, string templateCode, dynamic json, int ourid) { if ...