Skip to content

Commit

Permalink
Merge pull request #15 from zhangchunlin/update_orm_example
Browse files Browse the repository at this point in the history
add another example for orm
  • Loading branch information
limodou committed Sep 6, 2018
2 parents bce445a + 0625a9d commit 0847fc1
Showing 1 changed file with 27 additions and 0 deletions.
27 changes: 27 additions & 0 deletions docs/zh_CN/articles/multitable_query.md
Original file line number Diff line number Diff line change
Expand Up @@ -91,3 +91,30 @@ def user_department(user=None):
).one()
return d
```

## 直接写sql的例子

```
@expose('/server_list')
def server_list():
from uliweb.orm import do_
sql = '''select
server.id,
server.host_name,
server.ip_int as ip,
server.nickname,
server.site,
server.comment,
(select count(*) from service where service.server=server.id),
(select count(*) from backup inner join service where service.server=server.id and backup.service=service.id),
(select count(*) from backup where backup.backup_server=server.id)
from server where server.type!='workstation' and server.type!='jenkins_slave' and server.status='Active'
'''
result = do_(sql)
keys = ["server_id","hostname","ip","nickname","site","comment","num_service","num_backup_from","num_backup_to"]
server_list = [dict(zip(keys,i)) for i in result]
return {"server_list":server_list}
```

此例子没有进行字符串拼接,如果有拼接的情况,为了防止SQL注入,可以参考[Using Textual SQL](http://docs.sqlalchemy.org/en/latest/core/tutorial.html#using-textual-sql)用text来防止

0 comments on commit 0847fc1

Please sign in to comment.