tg2ext.express,涡轮齿轮2的一个小扩展
tg2ext.express的Python项目详细描述
tg2ext.express这是一个crud控制器,它可以帮助您在turbogears2上通过http restful接口快速地公开数据库表,
帮助您通过ajax快速地访问数据库。
TG应用程序中的ODE:
from tg2ext.express import expresscontroller
class writer(declarativebase):
/>lastname=column(unicode(64),nullable=false)
gender=column(enum('male','female',name='wrtier_gender'),default='male')
birthday=column(date,nullable=true)
description=column(text,nullable=true)
created=column(datetime,default=func.now())
(256),nullable=false)
keys=column(unicode(256),nullable=true)
content=column(text,nullable=true)
writer_id=column(integer,foreignkey('db_writers.id'),nullable=false)
created=column(datetime,default=func.now())
writer=relation('writer',backref='articles')
列(整数,foreignkey('db_articles.id'),nullable=false)
created=column(datetime,default=func.now())
控制器(model=model.writer,dbsession=dbsession)
article=expresscontroller(model=model.article,dbsession=dbsession)
comment=expresscontroller(model=model.comment,dbsession=dbsession)
……
文章,注释:
\writers:
/writer/{$id u aggregate}[?查询控件]
项目:
/article/{$id _aggregate}[?查询控件]
注释:
/comment/{$id _aggregate}[?查询和控制]
writer_id=2&;u include_fields=title,keys,created&;u extend_u fields=writer.firstname,writer.lastname
{
"u count":2,
"u limit":50,
"u model":"article",
"u ref":"/article/",
"article":[
{
"keys":"note,another",
"writer":{
"lastname":"shen",
"id":2,
"firstname":"fangze"
},
"title":"test note2",
"id":3,
"created":"2014-02-26 13:36:18"
},
{
"keys":"test",
"writer":{
"lastname":"shen",
"id":2,
"firstname":"fangze"
},
"title":"test note4",
"id":4,
"created":"2014-02-26 13:36:18"
}
],
"\uu begin":0,
"\uu total":2
}
ips:{
"文章":{
"field":[
"db-articles.writer-id"
],
"direction":"onetomany",
"target":"article"
}
},"table":"writer",
"fields":{
"description":{
"主键":false,
"可空":true,
"默认":null,
"文档":null,
"唯一":null,
"类型":"文本"
},
"名字":{
"主键":false,
"nullable":false,
"default":null,
"doc":null,
"unique":null,
"type":"varchar(64)"
},
"created":{
"primary_key":false,
"nullable":true,
"default":"columndefault(<;sqlalchemy.sql.functions.function at 0x528bb00;now>;)",
"doc":空,
"unique":空,
"type":"datetime"
},
"lastname":{
"primary\u key":false,
"nullable":false,
"default":null,
"doc":null,
"unique":null,
"type":"varchar(64)"
},
"birthday":{
"primary_key":false,
"nullable":true,
"default":空,
"doc":空,
"unique":空,
"type":"date"
},
"gender":{
"primary_key":false,
"nullable":true,
"default":"columndefault('male')",
"doc":空,
"unique":空,
"type":"varchar(6)"
},
"id":{
"primary\u key":真,
"nullable":假,
"default":空,
"doc":空,
"unique":空,
"type":"integer"
}
}
}
}
\_ count=id&;u group_by=writer_id
{
"u count":2,
"u model":"article",
"u ref":"/article/_aggregate",
"u type":"aggregation",
"article":[
{
"u count_u id":2,
"writer廑id":1
},
{
"廑count廑id":2,
"writer廑id":2
}
}
}
}
__包括字段:
u扩展字段:
{{{{{}{{{}{{{{{}}{{}{}{{}{{}{}
lt
lt
>包含
s
br/>小时
分钟
道
帮助您通过ajax快速地访问数据库。
TG应用程序中的ODE:
from tg2ext.express import expresscontroller
class writer(declarativebase):
/>lastname=column(unicode(64),nullable=false)
gender=column(enum('male','female',name='wrtier_gender'),default='male')
birthday=column(date,nullable=true)
description=column(text,nullable=true)
created=column(datetime,default=func.now())
(256),nullable=false)
keys=column(unicode(256),nullable=true)
content=column(text,nullable=true)
writer_id=column(integer,foreignkey('db_writers.id'),nullable=false)
created=column(datetime,default=func.now())
writer=relation('writer',backref='articles')
列(整数,foreignkey('db_articles.id'),nullable=false)
created=column(datetime,default=func.now())
控制器(model=model.writer,dbsession=dbsession)
article=expresscontroller(model=model.article,dbsession=dbsession)
comment=expresscontroller(model=model.comment,dbsession=dbsession)
……
文章,注释:
\writers:
/writer/{$id u aggregate}[?查询控件]
项目:
/article/{$id _aggregate}[?查询控件]
注释:
/comment/{$id _aggregate}[?查询和控制]
writer_id=2&;u include_fields=title,keys,created&;u extend_u fields=writer.firstname,writer.lastname
{
"u count":2,
"u limit":50,
"u model":"article",
"u ref":"/article/",
"article":[
{
"keys":"note,another",
"writer":{
"lastname":"shen",
"id":2,
"firstname":"fangze"
},
"title":"test note2",
"id":3,
"created":"2014-02-26 13:36:18"
},
{
"keys":"test",
"writer":{
"lastname":"shen",
"id":2,
"firstname":"fangze"
},
"title":"test note4",
"id":4,
"created":"2014-02-26 13:36:18"
}
],
"\uu begin":0,
"\uu total":2
}
ips:{
"文章":{
"field":[
"db-articles.writer-id"
],
"direction":"onetomany",
"target":"article"
}
},"table":"writer",
"fields":{
"description":{
"主键":false,
"可空":true,
"默认":null,
"文档":null,
"唯一":null,
"类型":"文本"
},
"名字":{
"主键":false,
"nullable":false,
"default":null,
"doc":null,
"unique":null,
"type":"varchar(64)"
},
"created":{
"primary_key":false,
"nullable":true,
"default":"columndefault(<;sqlalchemy.sql.functions.function at 0x528bb00;now>;)",
"doc":空,
"unique":空,
"type":"datetime"
},
"lastname":{
"primary\u key":false,
"nullable":false,
"default":null,
"doc":null,
"unique":null,
"type":"varchar(64)"
},
"birthday":{
"primary_key":false,
"nullable":true,
"default":空,
"doc":空,
"unique":空,
"type":"date"
},
"gender":{
"primary_key":false,
"nullable":true,
"default":"columndefault('male')",
"doc":空,
"unique":空,
"type":"varchar(6)"
},
"id":{
"primary\u key":真,
"nullable":假,
"default":空,
"doc":空,
"unique":空,
"type":"integer"
}
}
}
}
\_ count=id&;u group_by=writer_id
{
"u count":2,
"u model":"article",
"u ref":"/article/_aggregate",
"u type":"aggregation",
"article":[
{
"u count_u id":2,
"writer廑id":1
},
{
"廑count廑id":2,
"writer廑id":2
}
}
}
}
__包括字段:
u扩展字段:
{{{{{}{{{}{{{{{}}{{}{}{{}{{}{}
lt
lt
>包含
s
br/>小时
分钟
道