quick_orm 简介

  • 1,457 views
Uploaded on

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

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

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
  • Great!
    Are you sure you want to
    Your message goes here
No Downloads

Views

Total Views
1,457
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
11
Comments
1
Likes
2

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

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