webpy demo核心代码

   
   
   
   
# -*-encoding:utf-8 -*-

""" Basic Blog using webpy 0.3 """

import web
import config
import controllers



app
= web.application(config.urls,globals())

if __name__ == ' __main__ ' :
app.run()



class Index:

def GET(self):
web.header(
' Content-Type ' , ' text/html;charset=UTF-8 ' )
web.setcookie(
" age " , 30 )

posts
= model.get_posts()
return render.index(posts,web.cookies())

class View:

def GET(self,id):
""" View sing post """
post
= model.get_post(int(id))
print datetime.datetime.strptime( ' 2009-9-9 16:56:58 ' , ' %Y-%m-%d %H:%M:%S ' )
print datetime.datetime.now().strftime( ' %Y-%m-%d %H:%M:%S ' )
return render.view(post)

class New:
# vtitle = web.form.regex(r".{3,20}$", '标题长度3到20位字符')
form = web.form.Form(
web.form.Textbox(
' title ' ,web.form.notnull,
size
= 30 ,
description
= u " 标题 " ),
web.form.Textarea(
' content ' ,web.form.notnull,
rows
= 30 ,cols = 80 ,
description
= u " 内容 " ),
web.form.Button(
' submit ' ,type = " submit " ,html = u ' 提交 ' ),


)


def GET(self):
form
= self.form()

return render.new(form)

def POST(self):
form
= self.form()
if not form.validates():
return render.new(form)
model.new_post(form.d.title,form.d.content)
raise web.seeother( ' / ' )

class Delete:
def POST(self,id):
model.del_post(int(id))
raise web.seeother( ' / ' )

class Edit:

def GET(self,id):
post
= model.get_post(int(id))
form
= New.form()
form.fill(post)
return render.edit(post,form)

def POST(self,id):
form
= New.form()
post
= model.get_post(int(id))
if not form.validates():
return render.edit(post,form)
model.update_post(int(id),form.d.title,form.d.content)
raise web.seeother( ' / ' )

def notfound():
return web.notfound( " Sorry, the page you were looking for was not found. " )








model.py

   
   
   
   
import web,datetime
db
= web.database(dbn = ' sqlite ' ,db = ' blog.db ' )

def get_posts():
return db.select( ' entries ' ,order = ' id desc ' )

def get_post(id):
try :
return db.select( ' entries ' ,where = ' id=$id ' ,vars = locals())[0]
except IndexError:
return None

def new_post(title,text):

db.insert(
' entries ' ,title = title,content = text,post_on = datetime.datetime.utcnow())

def del_post(id):
db.delete(
' entries ' ,where = " id=$id " ,vars = locals())

def update_post(id,title,text):
db.update(
' entries ' ,where = " id=$id " ,vars = locals(),
title
= title,content = text)

你可能感兴趣的:(webpy demo核心代码)