[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 ...
随机推荐
- resumable.js —— 基于 HTML 5 File API 的文件上传组件 支持续传后台c#实现
在git上提供了java.nodejs.c#后台服务方式:在这里我要用c#作为后台服务:地址请见:https://github.com/23/resumable.js 我现在visual studio ...
- iOS:界面适配--iPhone不同机型适配 6/6plus
iOS:界面适配--iPhone不同机型适配 6/6plus 机型变化 坐标:表示屏幕物理尺寸大小,坐标变大了,表示机器屏幕尺寸变大了: 像素:表示屏幕图片的大小,跟坐标之间有个对应关系 ...
- 瞬态抑制二极管TVS的基本知识
二极管是大家熟悉的元件,但瞬态抑制二极管就可能不太熟悉了.本文将介绍这种特殊二极管的用途. 工作原理等基本知识.各种电子设备中的各种半导体器件,一般都在直流低电压范围各作;如果在电源中串入一个瞬间上百 ...
- altium designer Summer09出现的问题解决方案
在编译原理图时,引脚和连线旁边出现很多红线,提示 error:signal with no driver. 原理图没有加入到Project里. 第一次导入没问题,但是改了个元件的封装,在更新一下(De ...
- ISO7816通讯协议在工控主板EM9160中的实现方案
在新的国家电网智能终端相关标准中,规定了通过专门的加密芯片来保证设备数据安全性的方法,而设备主控单元与加密芯片采用了广泛应用的ISO7816通讯协议.工控主板EM9160为了适应这一新的技术需求,对其 ...
- Powershell过滤管道结果
通过管道可以过滤某些对象和对象的属性,这个功能很实用,因为很多时候我们并不是对所有的结果感兴趣,可能只会对某些结果感兴趣.如果要过滤对象可以使用Where-Object:如果要过滤对象的属性,可以使用 ...
- logstash 通过type判断
[elk@zjtest7-frontend type]$ cat input.conf input { file { type => "type_a" path => ...
- translate函数说明
TRANSLATE(expr, from_string, to_string) from_string 与 to_string 以字符为单位,对应字符一一替换. SQL> SELECT TRAN ...
- coalesce和nvl函数
coalesce 函数 : Oracle COALESCE函数语法为COALESCE(表达式1,表达式2,...,表达式n),n>=2,此表达式的功能为返回第一个不为空的表达式,如果 都为空则返 ...
- HTML5的local storage存储的数据到底存到哪去了
原文地址:http://zhidao.baidu.com/link?url=m6p5MLv0R46lDCd_Vnrry4XOMbdCwgV5fzs3tj5Jeyht1nPkAZ9OrO23njYBY1 ...