quick_orm 简介      Tyler Longhttp://www.tylerlong.me
quick_orm 是什么 Python ORM 框架 基于 SQLAlchemy github: https://github.com/tylerlong/quick_orm pypi: http://pypi.python.org/...
quick_orm 特点 quick: 一分钟快速上手 , 数据建模迅速直观 easy: 使用容易 , 完全不需要懂 SQL, 自动建表 simple: 核心代码仅 217 行 , bug 无处藏身 free: BSD license...
一分钟快速上手 安装 : pip install quick_orm
博客建模 除了第一行和最后一行 , 其它的代码就是很普通的 Python  类 数据建模就是写 Python 类 , 不需要你掌握复杂的建模规  则
问答网站建模 - 初始版本
问答网站建模 - 添加评论模块 需要能对问题进行评论 需要能对回答进行评论 需要能对评论本身进行评论     可以评论别人的评论 , 于是形成了树形结构的评论记录     问题是如何进行数据建模呢 ? 貌似是个棘手的问题啊 !
问答网站建模 - 表继承
问答网站建模 - 粉丝与站内信 用户需要有粉丝 要能发站内信
问答网站建模 - 标签 需要能对问题 , 回答 和评论进行标签
问答网站建模 - 重构
问答网站建模 - 继续重构
问答网站建模 - 最终模型
quick_orm 好在哪里 ?让代码说话    一个典型的问答网站 : 用户 , 问题 , 回答 , 评论 , 标签 , 粉丝 , 站     内信    最终数据建模代码    28 行 ( 含空白行 )    数据模型建好之后 ,...
运行一下看看 生成的数据表 :
数据插入
数据查询 执行结果 :
功能扩展举例 - 投票功能  比如我想添加投票功能 , 包括 " 顶 " 和 " 踩 " 两种投票类型  需要能对问题 , 回答和评论进行投票 执行结果 :
quick_orm vs. SQLAlchemy 不太好比 , 因为 quick_orm 基于 SQLAlchemy 就好像 Ubuntu vs. Linux 内核 理论上讲 , SQLAlchemy 支持的功能 , quick_orm ...
SQLAlchemy 建模多对多关系 用 quick_orm 建模的话 :
SQLAlchemy 建模表继承 用 quick_orm 建模的话 :
把问答网的模型用 SQLAlchemy 重建一遍 ?! 这个 ... 太复杂了 ... 我搞不定 . 感兴趣自己尝试下吧 .
SQLObject http://sqlobject.org/ SQLAlchemy 之外的知名的 Python ORM 框架 功能不如 SQLAlchemy 强大 , 但是使用起来简单 有一些人在用 , 社区没有 SQLAlchemy...
SQLObject 建模多对多关系 用 quick_orm 建模的话 :
SQLObject 建模表继承 用 quick_orm 建模的话 :
quick_orm vs. SQLObject 从前面两个例子看出 , quick_orm 和 SQLObject 使用都很简单 . quick_orm 兼容 SQLAlchemy, 事实上 quick_orm 用户碰到问  题大都去查 S...
Q&A 有更多问题欢迎到 github 项目主页提交 issue:     https://github.com/tylerlong/quick_orm/issues 也欢迎到我的博客空间进行交流 ;     http://www.ty...
Upcoming SlideShare
Loading in...5
×

quick_orm 简介

1,558

Published on

quick_orm 简介, quick_orm 快速上手. 怎么用quick_orm为stackoverflow这样的问答网站建模

Published in: Technology
1 Comment
2 Likes
Statistics
Notes
No Downloads
Views
Total Views
1,558
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
12
Comments
1
Likes
2
Embeds 0
No embeds

No notes for slide

quick_orm 简介

  1. 1. quick_orm 简介 Tyler Longhttp://www.tylerlong.me
  2. 2. quick_orm 是什么 Python ORM 框架 基于 SQLAlchemy github: https://github.com/tylerlong/quick_orm pypi: http://pypi.python.org/pypi/quick_orm
  3. 3. quick_orm 特点 quick: 一分钟快速上手 , 数据建模迅速直观 easy: 使用容易 , 完全不需要懂 SQL, 自动建表 simple: 核心代码仅 217 行 , bug 无处藏身 free: BSD license powerful: 基于 SQLAlchemy, 最强大的 Python ORM
  4. 4. 一分钟快速上手 安装 : pip install quick_orm
  5. 5. 博客建模 除了第一行和最后一行 , 其它的代码就是很普通的 Python 类 数据建模就是写 Python 类 , 不需要你掌握复杂的建模规 则
  6. 6. 问答网站建模 - 初始版本
  7. 7. 问答网站建模 - 添加评论模块 需要能对问题进行评论 需要能对回答进行评论 需要能对评论本身进行评论  可以评论别人的评论 , 于是形成了树形结构的评论记录  问题是如何进行数据建模呢 ? 貌似是个棘手的问题啊 !
  8. 8. 问答网站建模 - 表继承
  9. 9. 问答网站建模 - 粉丝与站内信 用户需要有粉丝 要能发站内信
  10. 10. 问答网站建模 - 标签 需要能对问题 , 回答 和评论进行标签
  11. 11. 问答网站建模 - 重构
  12. 12. 问答网站建模 - 继续重构
  13. 13. 问答网站建模 - 最终模型
  14. 14. quick_orm 好在哪里 ?让代码说话  一个典型的问答网站 : 用户 , 问题 , 回答 , 评论 , 标签 , 粉丝 , 站 内信  最终数据建模代码 28 行 ( 含空白行 )  数据模型建好之后 , 数据表可以自动生成 , 数据的插入和查询接口 全部搞定 ! 我想不出 , 如果还有更好用的 ORM 框 架 , 到底还能在哪方面改进 ?
  15. 15. 运行一下看看 生成的数据表 :
  16. 16. 数据插入
  17. 17. 数据查询 执行结果 :
  18. 18. 功能扩展举例 - 投票功能  比如我想添加投票功能 , 包括 " 顶 " 和 " 踩 " 两种投票类型  需要能对问题 , 回答和评论进行投票 执行结果 :
  19. 19. quick_orm vs. SQLAlchemy 不太好比 , 因为 quick_orm 基于 SQLAlchemy 就好像 Ubuntu vs. Linux 内核 理论上讲 , SQLAlchemy 支持的功能 , quick_orm 全部都支持 为什么不直接用 SQLAlchemy 呢 ?  SQLAlchemy 建模表和表之间的关系的时候 , 比较冗长复杂  一旦表和表之间的关联关系增多 , 可维护性与可读性急剧下降  于是另外一款功能弱但使用简单的 ORM 会被一部分人追捧 : SQLObject
  20. 20. SQLAlchemy 建模多对多关系 用 quick_orm 建模的话 :
  21. 21. SQLAlchemy 建模表继承 用 quick_orm 建模的话 :
  22. 22. 把问答网的模型用 SQLAlchemy 重建一遍 ?! 这个 ... 太复杂了 ... 我搞不定 . 感兴趣自己尝试下吧 .
  23. 23. SQLObject http://sqlobject.org/ SQLAlchemy 之外的知名的 Python ORM 框架 功能不如 SQLAlchemy 强大 , 但是使用起来简单 有一些人在用 , 社区没有 SQLAlchemy 大 , 文档没有 SQLAlchemy 全 之所以它能在 SQLAlchemy 眼皮底下成长起来 , 就是因为它简 单 也可以反过来理解 : SQLAlchemy 的接口设计得太复杂了
  24. 24. SQLObject 建模多对多关系 用 quick_orm 建模的话 :
  25. 25. SQLObject 建模表继承 用 quick_orm 建模的话 :
  26. 26. quick_orm vs. SQLObject 从前面两个例子看出 , quick_orm 和 SQLObject 使用都很简单 . quick_orm 兼容 SQLAlchemy, 事实上 quick_orm 用户碰到问 题大都去查 SQLAlchemy 的文档 . SQLAlchemy 的社区远大于 SQLObject 的社区 . quick_orm 功能上强于 SQLObject. ( 因为 quick_orm 是基于 SQLAlchemy 的 )
  27. 27. Q&A 有更多问题欢迎到 github 项目主页提交 issue:  https://github.com/tylerlong/quick_orm/issues 也欢迎到我的博客空间进行交流 ;  http://www.tylerlong.me
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×