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

 

项目模拟地址: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之抽屉实战(1)--分析与架构

    项目模拟地址:http://dig.chouti.com/ 知识点应用: AJAX  用于偷偷发请求 原生ajax jQuery  ajax($.ajax) iframe伪造 上传文件 传统Form ...

  2. 抽屉之Tornado实战(9)--装饰器实现用户登录状态验证

    当然今天讲的验证,不只Tornado会用,以后用到web框架都会用到,最常见的场景就是只有用户登陆了才能执行某些操作,所以在执行这些操作前要先做登陆状态的验证. 比如:点赞,发布,评论等需要验证,都需 ...

  3. 抽屉之Tornado实战(7)--form表单验证

    在这里,我们把form表单验证的代码进行工具化了,以后稍微修改一下参数就可以拿来用了 先贴上代码 forms.py from backend.form import fields class Base ...

  4. 抽屉之Tornado实战(6)--session工厂(工厂方法模式)

    我之前写的session一般保存在服务器的内存里,那可以保存在缓存,或是数据库,那问题来了,不同地方,保存方式是不同的,所以需要定义不同的类,cache/redis/memcached类 sessio ...

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

    经过我们上次分析,数据库要有最基本的四张表,用户表,消息表,类型表,点赞表,评论表,接下来我们看着怎么设计吧 首先我们要清楚,表设计的代码是写在models下的 用户表 #一张表对应一个类 class ...

  6. 抽屉之Tornado实战(5)--点赞与评论树

    点赞 点赞的过程:数字增加,并在后台点赞表记录数据 需要发过去的数据:用户id,新闻id 用户id从session里获得,那新闻id怎么获取呢?这想到分页是循环新闻列表来展示内容,循环的新闻id可以做 ...

  7. 抽屉之Tornado实战(4)--发帖及上传图片

    对于链接,点击获取标题时,本质发送ajax请求,然后去链接抓取信息,发布又是发送ajax请求 发布信息,还要有发布者的信息,并在信息表需要记录发布者的用户名,发布者的头像,发布者的id,而这些信息可以 ...

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

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

  9. Tornado实战

    抽屉之Tornado实战(1)--分析与架构 抽屉之Tornado实战(2)--数据库表设计 抽屉之Tornado实战(3)--注册 抽屉之Tornado实战(4)--发帖及上传图片 抽屉之Torna ...

随机推荐

  1. LeetCode: Permutation Sequence 解题报告

    Permutation Sequence https://oj.leetcode.com/problems/permutation-sequence/ The set [1,2,3,…,n] cont ...

  2. FTP实验

    一.安装 sudo apt-get install vsftpd service vsftpd start 启动vsftpd服务 如果在不设置任何的情况下,可以以匿名的方式访问该ftp. 这时候你可以 ...

  3. HeroKu PaaS模式

    从HeroKu的官网看到一副流程图,演示了其提倡的应用构建通道,让包括个人开发者.创业团队.乃至各种规模的业务都能以自己的方式使用它,剩下的就是交给用户去开发出优秀的应用. 在开发者和应用的用户之间, ...

  4. Linux CentOS 6.9 Minimal 编译 OpenJDK 7

    今天学习<深入理解Java虚拟机:JVM高级特性与最佳实践>一书,并动手在Linux系统上编译OpenJDK 7,初次搞不太顺利,特记录下编译操作细节. 一.前期准备 约定:工具默认安装目 ...

  5. C# 反射总结 获取 命名空间 类名 方法名

    一.获取 命名空间 类名 方法名 using System; using System.Collections.Generic; using System.Linq; using System.Tex ...

  6. linux 修改文件类型

    :Unix及类Unix系统里,每行结尾只有换行“\n”,Windows系统里面,每行结尾是换行+回车“\n\r”. 利用Linux下的vim编辑器,可以方便的在dos文件.unix文件之间进行切换,且 ...

  7. scp出现Permission denied,please try again的解决办法

    当scp的时候我们发现错误,被拒绝,是因为ssh的权限问题,需要修改权限,进入到/etc/ssh文件夹下,用root用户修改文件sshd_config 将PermitRootLogin no / wi ...

  8. [原]CentOS 7 网卡子接口的创建

    OS:CentOS 7 在linux上创建vlan需要加载802.1q模块: 1.检测OS是否已经加载802.1q模块 [root@controller ~]# modinfo 8021q filen ...

  9. css sprite---css精灵网页图片应用处理方式分析

    CSSSprites,在前端图片处理中经常用到的一种高效方法,下面参考百度百科的总结,非常到位,学习一下吧! CSSSprites在国内很多人叫css精灵,是一种网页图片应用处理方式.它允许你将一个页 ...

  10. chfn是用来改变你的finger讯息

    finger 总览 finger[-lmsp][user...][user host...][[]] 参数: -s Finger显示用户的登录名,真名,终端名以及写状态(如果写被禁止,在终端名后显示一 ...