#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. [Spring boot] CommandLineRunner and Autowired

    Previously we use Application Context to get Bean and Dependenies injection. It is actually easier t ...

  2. [人物存档]【AI少女】【捏脸数据】1222今日份的推荐

    AISChaF_20191030183624290.png

  3. ibatis和mybatis中的BatchExecutor

    ibatis中的的处理方法 spring集成了ibatis的批量提交的功能,我们只要调用API就可以了 首先在你的dao中需要继承org.springframework.orm.ibatis.supp ...

  4. Https Get Post

    #region Http 访问 public string GetHttpUrl(string Url) { try { HttpWebRequest request = (HttpWebReques ...

  5. TTTTTTTTTTTTTTTTTTT UVA 2045 Richness of words

    J - Richness of words Time Limit:500MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64 ...

  6. html基础(img、a、列表 )

    图片标签(img) <img src="图片路径" alt="图片描述 图片无法正常显示出现文字" title="爱你"/> i ...

  7. $\LaTeX$数学公式大全8

    $8\ Miscellaneous\ symbols$ $\infty$ \infty $\nabla$ \nabla $\partial$ \partial $\eth$ \eth $\clubsu ...

  8. HR问“你目前有几个offer”,聪明人会怎么说?

    点击上方“程序员江湖”,选择“置顶或者星标” 你关注的就是我关心的!   一个朋友和我聊天,说起自己最近被虐的面试经历.他985毕业,工作3年,看中了一家月薪1.5万的工作,准备跳槽.虽然在北京不算高 ...

  9. RF框架自定义测试库开发

    静态库 方法(methods)直接映射为关键字名称.关键字接受和方法相同的参数, 通过抛异常来 报告错误, 通过往标准输出里写入来写 log, 同时可以通过return 来返回结果. 创建步骤: ▲ ...

  10. LC 841. Keys and Rooms

    There are N rooms and you start in room 0.  Each room has a distinct number in 0, 1, 2, ..., N-1, an ...