初始化 init.sql:
CREATE TABLE blog (
id INT AUTO_INCREMENT,
title TEXT,
content TEXT,
posted_on DATETIME,
primary key (id)
);
CREATE TABLE comment(
id INT AUTO_INCREMENT,
content TEXT,
posted_on DATETIME,
blog_id INT,
primary key (id)
);
my_blog.py
#! /usr/bin/python
# encoding:utf-8
import web
import model
# url映射
urls = (
'/', 'Index',
'/view/(\d+)', 'View',
'/new', 'New',
'/delete/(\d+)', 'Delete',
'/edit/(\d+)', 'Edit',
'/login', 'Login',
'/logout', 'Logout',
)
app=web.application(urls,globals())
# 模板公共变量
t_globals = {
'datestr': web.datestr,
'cookie': web.cookies,
}
# 指定模板目录,并设定公共模板
render=web.template.render('templates',base='base',globals=t_globals)
# 创建登录表单
login = web.form.Form(
web.form.Textbox('username'),
web.form.Password('password'),
web.form.Button('login')
)
# 首页类
class Index:
def GET(self):
login_form=login()
posts=model.get_posts()
return render.index(posts,login_form)
def POST(self):
login_form=login()
if login_form.validates():
if login_form.d.username=='admin' \
and login_form.d.password=='admin':
web.setcookie('username',login_form.d.username)
raise web.seeother('/')
# 查看/评