项目模拟地址:http://dig.chouti.com/

知识点应用:

  • AJAX  用于偷偷发请求

  1. 原生ajax
  2. jQuery  ajax($.ajax)
  3. iframe伪造
  • 上传文件

  1. 传统Form 弊端:会刷新页面   提醒:enctype=‘multiprt/form-data’记住这个特殊的设置
  2. ajax上传:FormData方式(不是所有的浏览器都支持),Form表单+iframe(兼容性好)
  • session  依赖cookie

  • 验证码   基于session来做

  • Form验证

  • 分页

  • 数据库

  1. pymsql
  2. ORM

目录结构介绍

  • app.py  启动程序

  • config.py  配置文件

  • MVC

  1. models  ORM数据相关--表类
  2. views  模板文件
  3. controllers  业务逻辑处理
  • backend

  1. uimethods.py   Tornado扩展
  2. commobs.py   公共功能:生成随机字符串,加密...
  3. core   request_handler.py  请求来时先做session这件事(一个父类)
  4. form 定义匹配规则的类(合法性验证)
  5. session
  6. utils  工具--分页、发邮件、验证码
  • 其他

  1. statics  静态文件
  2. forms  form表单验证相关的类(业务场景验证)

页面逻辑分析

  • 注册

  1. 填写基本信息
  2. 发邮件获取验证码
  3. 验证通过,注册成功
  • 登陆

  1. 用户名and密码   or    邮箱and密码  两种组合方式
  2. 生成随机验证码图片
  3. 验证通过,登陆成功(涉及数据库,要有一张用户表)
  • 发布的信息

  1、标题,2、内容,3、图片,4、类型,5、发布者,6、发布时间,7、URL地址

  (涉及数据库,创建信息表,其实发布者又是用户表的,消息对发布者--多对一,一个人可以发布多条消息,类型也可以通过外键设置,所以有创建一个类型表)

  • 点赞(多对多,又要建立一张点赞表)

  1. 一个人可以为多条信息点赞
  2. 一条信息也可以被多个人点赞
  3. 一个人不能为同一个信息点第二次赞(联合唯一索引)
  • 评论

  1. 评论时,谁评论,评论时间,评论哪条消息,评论内容,评论设备
  2. 评论时,有对消息评论,也有回复某人(本质是针对某个人的某条评论)

  最后这里还要有一张评论表

Tornado之抽屉实战(1)--分析与架构的更多相关文章

  1. Tornado之抽屉实战(2)--数据库表设计

    经过我们上次分析,数据库要有最基本的四张表,用户表,消息表,类型表,点赞表,评论表,接下来我们看着怎么设计吧 首先我们要清楚,表设计的代码是写在models下的 用户表 ? 1 2 3 4 5 6 7 ...

  2. Tornado之抽屉实战(3)--注册

    知识点应用:标签绑定事件,jQuery获取用户值-->AJAX发送数据-->后台路由系统-->业务逻辑处理-->ORM数据操作-->write返回-->AJAX回调 ...

  3. 抽屉之Tornado实战(1)--分析与架构

    抽屉之Tornado实战(1)--分析与架构   项目模拟地址:http://dig.chouti.com/ 知识点应用: AJAX  用于偷偷发请求 原生ajax jQuery  ajax($.aj ...

  4. Salesforce学习之路-developer篇(五)一文读懂Aura原理及实战案例分析

    1. 什么是Lightning Component框架? Lightning Component框架是一个UI框架,用于为移动和台式设备开发Web应用程序.这是一个单页面Web应用框架,用于为Ligh ...

  5. [UI]抽屉菜单DrawerLayout分析(一)

    本文转载于:http://www.cnblogs.com/avenwu/archive/2014/04/16/3669367.html 侧拉菜单作为常见的导航交互控件,最开始在没有没有android官 ...

  6. 揪出“凶手”——实战WinDbg分析电脑蓝屏原因

    http://www.appinn.com/blue-screen-search-code/ 蓝屏代码查询器 – 找出蓝屏的元凶 11 文章标签: windows / 系统 / 蓝屏. 蓝屏代码查询器 ...

  7. [UI]抽屉菜单DrawerLayout分析(三)

    在[UI]抽屉菜单DrawerLayout分析(一)和[UI]抽屉菜单DrawerLayout分析(二)中分别介绍了DrawerLayout得基本框架结构和ViewDragerHelper的作用以及手 ...

  8. [转帖]深度分析HBase架构

    深度分析HBase架构 https://zhuanlan.zhihu.com/p/30414252   原文链接(https://mapr.com/blog/in-depth-look-hbase-a ...

  9. Node.js 实战 & 最佳 Express 项目架构

    Node.js 实战 & 最佳 Express 项目架构 Express Koa refs https://github.com/xgqfrms/learn-node.js-by-practi ...

随机推荐

  1. PHP 5.2、5.3、5.4、5.5、5.6 版本区别对比以及新功能详解

    截至目前(2015.1), PHP 的最新稳定版本是 PHP5.5, 但有差不多一半的用户仍在使用已经不在维护  的 PHP5.2, 其余的一半用户在使用 PHP5.3 . 因为 PHP 那“集百家之 ...

  2. DataGrid合并单元格(wpf)

    在网上搜索wpf合并单元格,一直没搜索到,没办法,只能自己想办法搞定了.其实就是DataGrid套DataGrid,为了方便支持Column拖动,在合并的DataGridColumn那一列的Heade ...

  3. python中利用正则表达式匹配ip地址

    现在有一道题目,要求利用python中re模块来匹配ip地址,我们应如何着手? 首先能想到的是ip地址是数字,正则表达式是如何匹配数字的呢? \d或[0-9] 对于这个问题,不要一下子上来就写匹配模式 ...

  4. Mac开机启动

    1. Finder打开资源库的LaunchAgents目录. 打开Finder,按⇧⌘G,输入 /Library/LaunchAgents/ 以及 ~/Library/LaunchAgents/ 2. ...

  5. Oracle Index Clustering Factor(集群因子)

    一.本文说明: 今天在做测试的时候发现字段上有索引,但是执行计划就是不走索引,经过在网上查找才发现原来是索引的集群因子过高导致的.本文属于转载 二.官网说明 The index clustering ...

  6. 05-THREE.JS 产生大雾的效果

    <!DOCTYPE html> <html> <head> <title></title> <script src="htt ...

  7. JavaScript实现文章复制加版权信息

    function addLink() { var body_element = document.getElementsByTagName('body')[0]; var selection; if( ...

  8. github 第一次使用及出现的问题解决

    1.前言: 我们使用git,自然是希望我们的项目可以方便的从本地上传到git的仓库中,从而实现项目版本控制和备份,但是,从GitHub的网站上传文件,只能上传25MB的数据,我想多数人的项目都不可能只 ...

  9. XML的语法

    XML的语法 文档声明: 写法 <?xml version="1.0" ?> 文档声明必须出现在xml文件的第一行和第一列的位置 属性: version="1 ...

  10. poj1321

    这个题要是乍一看很难会想深搜,确实如此,可如果知道了深搜的方法,这个题就简 了不少,至于用深搜的时候要考虑当k==n和k<n时这咱种情况,当K==n时,当然很好想 到深搜搜下很容易找到所有方法, ...