Python数据库交互ORM映射框架之————SQLAlchemy

SQLAlchemy  提供 常见的抽象数据库数据类型,可以让用户自定义数据类型。

 

这里的方法和属性类型的对象很少直接去使用他们。类型对象提供给表定义,可以提供类型提示功能使数据库返回一个非原来真实数据的数据类型。

 

users = Table('users', metadata,
               Column('id', Integer, primary_key=True)
               Column('login', String(32))
              )

 

当创建一个 CREATE TABLE 声明并再使用它重复使用SELECT 语句从数据库查询时,SQLAlchemy将使用 Integer String(32) 信息类型。函数接受一个类型为(如Column())用于特定接收一个类型的类或者实例;上述案例中没有接收任何构造参数时 Integer 是等价于Integer()。

 

----——————————————————————————————————————————————————————————————————

 

泛型

泛型制定一个可读、可写并且可以存储一个特定类型的Python数据。当使用CREATE TABLE 声明创建表的时候,SQLAlchemy将选择目标数据库里可用类型中最实用的类型。

用于完全控制创建表里散列出的数据,如VARCHAR (见 SQL标准和多厂商类型 和这部分其他章节)。

 

class sqlalchemy.types.BigInteger 

基于:

sqlalchemy.types.Integer 

返回:一个比Int更大的整数类型。

特别地生成一个 BIGINT 在DDL中,而在Python就显示为一般的Integer类型。

 

 

class sqlalchemy.types.Boolean(create_constraint=True, name=None, _create_events=True)

基于:

 sqlalchemy.types.TypeEngine,sqlalchemy.types.SchemaType

 返回:一个布尔数据类型。

 

布尔类型特别适用BOOLEAN SMALLINT 在DDL中,并且在Python处理为 True 或者 False.

 

__init__(create_constraint=True, name=None, _create_events=True)

构造 一个布尔类型。

 

参数

 

  • create_constraint  --- 默认为 True.如果布尔值被定为 一个int/smallint,同样会闯将

一个 CHECK 约束在表中,确保值为1或0;

  • name  --- 如果CHECK 约束已经生成,标识约束的名称

 

 

class sqlalchemy.types.Date

 

 

基于:

sqlalchemy.types._LookupExpressionAdapter, sqlalchemy.types.TypeEngine

 

一个类型为 datetime.date() 对象。

 

class sqlalchemy.types.DateTime(timezone=False)

 

基于:

sqlalchemy.types._LookupExpressionAdapter, sqlalchemy.types.TypeEngine

一个类型为 datetime.datetime()的对象

 

日期和事件类型从 Python  datetime 模块返回的对象。大部分DBAPI 支持时间模块,SQLite除外。

在SQLite例子中,日期和时间类型是作为字符串类型存储,当返回每一行数据时用于后面转换回

  datetime对象,由于时间表示在datetime类型中,一些后端包括了一些附加操作,如时区和小数部分的秒的支持。对于小数部分的秒数,会话标识( dialect-specific )数据类型,如mysql

 .TIME。对于时区的支持,如果没有标示的话,最低限度使用时间戳类型。

 

__init__(timezone=False)

 构造一个新的DateTime.

 

参数:

timezone  --布尔值。如果可用的基本时间类型只有 date/time 指明时间类型是否支持时区。要使用标记时推荐最好是直接使用 TIMESTAM类型。

posted @ 2017-06-29 20:17  Silverwingsw  阅读(134)  评论(0)    收藏  举报
$(document).ready(function(){ $("
").appendTo($("body")).bind("click", function(){ $("body,html").animate({ scrollTop: 0 }, 150); }); $('#cnblogs_post_body pre').find('>code').parent().css({'border':'dashed 1px #aaa','border-left':'solid 2px #6CE26C'}); $("#cnblogs_post_body").append('

感谢您的阅读,如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮。本文欢迎各位转载,但是转载文章之后必须在文章页面中给出作者和原文连接
'); }); var u = $(this), v = u[0]; var title=u.text(); var text=u.text(); u.attr('id', 'autoid-' + l + '-' + m + '-' + n) if (v.localName === 'h2') { l++; m = 0; if(text.length>30) text=text.substr(0,30)+"..."; j += '
  • ' + text + '
  • '; } else if (v.localName === 'h3') { m++; n = 0; if(q){ if(text.length>28) text=text.substr(0,28)+"..."; j += '
  • ' + text + '
  • '; } }else if (v.localName === 'h4') { n++; if(r){ j += '
  • ' + u.text() + '
  • '; } }