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 一些配置设置


1 # coding:utf-8 2 3 import os 4 import uuid 5 import base64 6 7 import tornado.web 8 9 settings = dict( 10 template_path=os.path.join(os.path.dirname(__file__), "templates"), 11 static_path=os.path.join(os.path.dirname(__file__), "static"), 12 xsrf_cookies=True, 13 cookie_secret=base64.b64encode(uuid.uuid4().bytes+uuid.uuid4().bytes), 14 login_url="/login", 15 debug=True, 16 )
2. url.py 记录URL和映射的类


1 # coding:utf-8 2 3 4 url = [(r"^/", "handlers.index.IndexHandler")] 5 6 url += [(r"^/todo/new", "handlers.new.NewHandler")] 7 8 url += [(r"^/todo/(\d+)/edit", "handlers.edit.EditHandler")] 9 10 url += [(r"^/todo/(\d+)/delete", "handlers.delete.DeleteHandler")] 11 12 url += [(r"^/todo/(\d+)/finish", "handlers.finish.FinishHandler")]
3. todo.sql 初始化mysql


1 # $ mysql -u root -p < mysql_create.sql 2 # Aa123456 3 4 drop database if exists tornado_todo; 5 6 create database tornado_todo; 7 8 GRANT ALL ON tornado_todo.* TO 'tornado' IDENTIFIED BY '123'; 9 10 use tornado_todo; 11 12 create table todo ( 13 `id` mediumint not null auto_increment, 14 `todo_text` varchar(50) not null, 15 `finished` bool not null default 0, 16 `post_date` datetime not null default now(), 17 primary key (`id`) 18 ) engine=innodb default charset=utf8;
4. handlers/ 请求的各个类
5. static/ 静态文件
6. templates/ html文件
7. conf/ 配置文件
8. logs/ 存放log文件
Todo:
1. 使用jquery,分离出所有的css和js。
2. 使用sqlalchemy改写数据库操作。