[1] Tornado Todo Day0
Github地址: day0
初始化数据库:
jakeychen@JC:~/Public/tornado_todo$ pwd
/home/jakeychen/Public/tornado_todo
jakeychen@JC:~/Public/tornado_todo$ mysql -u root -p < todo.sql
输入密码 Aa123456 (假设你设置的密码为这个),完成mysql的初始化。
运行程序:
jakeychen@JC:~/Public/tornado_todo$ python srv.py

在浏览器(Chrome)查看运行效果:

尝试新增几个todo看一下效果:

标记为完成:

这样一个简单的待办事项就运行起来了
目前的项目大致结构:
tornado_todo/
├── application.py
├── conf
│ ├── config.yaml
│ └── logging.yaml
├── handlers
│ ├── base.py
│ ├── delete.py
│ ├── edit.py
│ ├── finish.py
│ ├── index.py
│ ├── __init__.py
│ └── new.py
├── logs
│ ├── all.log
│ ├── ingenia.log
│ └── warn.log
├── README.md
├── srv.py
├── static
│ ├── css
│ │ ├── app.css
│ │ └── normalize.css
│ ├── images
│ │ ├── favicon.ico
│ │ ├── ok.gif
│ │ └── tornado.png
│ └── js
├── templates
│ ├── base.html
│ ├── edit.html
│ └── index.html
├── todo.sql
└── url.py
1. application.py 一些配置设置
# coding:utf-8 import os
import uuid
import base64 import tornado.web settings = dict(
template_path=os.path.join(os.path.dirname(__file__), "templates"),
static_path=os.path.join(os.path.dirname(__file__), "static"),
xsrf_cookies=True,
cookie_secret=base64.b64encode(uuid.uuid4().bytes+uuid.uuid4().bytes),
login_url="/login",
debug=True,
)
2. url.py 记录URL和映射的类
# coding:utf-8 url = [(r"^/", "handlers.index.IndexHandler")] url += [(r"^/todo/new", "handlers.new.NewHandler")] url += [(r"^/todo/(\d+)/edit", "handlers.edit.EditHandler")] url += [(r"^/todo/(\d+)/delete", "handlers.delete.DeleteHandler")] url += [(r"^/todo/(\d+)/finish", "handlers.finish.FinishHandler")]
3. todo.sql 初始化mysql
# $ mysql -u root -p < mysql_create.sql
# Aa123456 drop database if exists tornado_todo; create database tornado_todo; GRANT ALL ON tornado_todo.* TO 'tornado' IDENTIFIED BY ''; use tornado_todo; create table todo (
`id` mediumint not null auto_increment,
`todo_text` varchar(50) not null,
`finished` bool not null default 0,
`post_date` datetime not null default now(),
primary key (`id`)
) engine=innodb default charset=utf8;
4. handlers/ 请求的各个类
5. static/ 静态文件
6. templates/ html文件
7. conf/ 配置文件
8. logs/ 存放log文件
Todo:
1. 使用jquery,分离出所有的css和js。
2. 使用sqlalchemy改写数据库操作。
[1] Tornado Todo Day0的更多相关文章
- [0] Tornado Todo 开篇
参考自: python: tornado例子 Github地址:tornado_todo 开发环境: Python包的安装: 首先安装 pip: sudo apt-get install python ...
- TODO List - 任务表
TODO List - 任务表 Angular1 --> Ionic1 --> Vue --> Weex Python --> Django --> Tornado -- ...
- web框架 之 Tornado
初识 Tornado : tornado web server 是使用python编写出来的一个轻量级.高可伸缩性和非阻塞IO的Web服务器软件,其特点是采用epoll非阻塞IO,相应快速,可处理数千 ...
- tornado web高级开发项目之抽屉官网的页面登陆验证、form验证、点赞、评论、文章分页处理、发送邮箱验证码、登陆验证码、注册、发布文章、上传图片
本博文将一步步带领你实现抽屉官网的各种功能:包括登陆.注册.发送邮箱验证码.登陆验证码.页面登陆验证.发布文章.上传图片.form验证.点赞.评论.文章分页处理以及基于tornado的后端和ajax的 ...
- Tornado 异步客户端
前言 Tornado是很优秀的非阻塞式服务器,我们一般用它来写Web 服务器,据说知乎就是用Tornado写的. 如果对tornado源码不是很了解,可以先看一下另一篇文章: http://yunji ...
- tornado框架之路二
二.路由系统 路由系统其实就是 url 和 类 的对应关系,这里不同于其他框架,其他很多框架均是 url 对应 函数,Tornado中每个url对应的是一个类. #!/usr/bin/env pyth ...
- tornado简单的验证码
1.html代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...
- 深入tornado中的http1connection
前言 tornado中http1connection文件的作用极其重要,他实现了http1.x协议. 本模块基于gen模块和iostream模块实现异步的处理请求或者响应. 阅读本文需要一些基础的ht ...
- tornado web高级开发项目
抽屉官网:http://dig.chouti.com/ 一.配置(settings) settings = { 'template_path': 'views', #模板文件路径 'static_pa ...
随机推荐
- iOS 第三方 需要 引用的库
================================================== AFNetWorking 是基于 nsurlconnection 所以不需要引入库 === ...
- 变量数据是怎么进ARM中的RAM中?
这篇文章 是从网上复制过来的.觉得不错,分享给大家.原文地址:http://eetrend.com/forum/100028828 ARM的体系结构有很多很多介绍的地方,从其7种模式到CPSR状态寄存 ...
- Javascript quiz
作为一个勤劳的corder,在大年三十的前一天还留守在公司的最前线.百无聊赖中看到一套关于js的测试题,测试过后发现有些题还是有很大的意义,至少能够让我门对js基础有所重视.本人将每道题的考察点总结了 ...
- 将rcc.exe添加到系统Path
rcc不是内部或外部命令搜索下rcc.exe二进制文件的位置,然后将该路径添加到path环境变量中. 在cmd中输入path,显示当前的环境变量. 然后path = %path%;C:\Qt\4.8. ...
- TaintDroid:智能手机监控实时隐私信息流跟踪系统(四)
6 应用程序研究 款流行的应用程序是怎么使用用户敏感数据的.选取的应用程序可以根据相应的权限通过Internet获得各种各样的用户数据.我们研究发现三分之二的这些数据暴露了用户详细的地理位置 ...
- windows上安装winsshd
winsshd下载地址:http://www.bitvise.com/ssh-server-download 安装后默认配置即可使用:
- Hadoop开发遇到的问题之reduce卡住
遇到的问题描述:在hadoop上面执行程序,程序运行之后能够正常执行.一切似乎都是正常的,然而过了一段时间之后程序便开始阻塞直到程序超时退出(如下). 14/08/19 21:17:51 INFO m ...
- Codeforce 216 div2
D 只要搞清楚一个性质:确定了当前最大和次大的位置,局面就唯一确定了; 根据这个性质设计dp,统计到达该局面的方法数即可. E 询问的要求是: 求有多少个区间至少覆盖了询问的点集中的一个; 转化成逆命 ...
- 【活动】明星衣橱CEO林清华聊创业 | 猎云网
[活动]明星衣橱CEO林清华聊创业 | 猎云网 [活动]明星衣橱CEO林清华聊创业
- [Angular 2] Using the @Inject decorator
TypeScript is used heavily as we build up our application, but TypeScript isn’t required. If you wan ...