1. 程式人生 > >web.py 十分鐘建立簡易部落格

web.py 十分鐘建立簡易部落格

【原文:http://blog.csdn.net/caleng/article/details/5712850】

本文章來源於網路,僅作為學習日記之用,版權歸原作者所有,如果侵犯了您的權益,請來信告知,我會盡快處理】

======================================================

一、web.py簡介

web.py是一款輕量級的python web開發框架,簡單、高效、學習成本低,特別適合作為python web開發的入門框架。官方站點:http://webpy.org/

二、web.py安裝

2、解壓並進入web.py-0.33目錄,安裝:python setup.py install

三、建立簡易部落格

1、目錄說明:主目錄blog/,模板目錄blog/templates

2、在資料庫“test”中建立表“entries”

  1. CREATE TABLE entries (    
  2.     id INT AUTO_INCREMENT,    
  3.     title TEXT,    
  4.     content TEXT,    
  5.     posted_on DATETIME,    
  6.     primary key (id)    
  7. );   
 

3、在主目錄建立blog.py,blog/blog.py

  1. #載入框架
  2. import web  
  3. #載入資料庫操作model(稍後建立)
  4. import model  
  5. #URL對映
  6. urls = (  
  7.         '/''Index',  
  8.         '/view/(/d+)''View',  
  9.         '/new''New',  
  10.         '/delete/(/d+)''Delete',  
  11.         '/edit/(/d+)''Edit',  
  12.         '/login''Login',  
  13.         '/logout''Logout',  
  14.         )  
  15. app = web.application(urls, globals())  
  16. #模板公共變數
  17. t_globals = {  
  18.     'datestr': web.datestr,  
  19.     'cookie': web.cookies,  
  20. }  
  21. #指定模板目錄,並設定公共模板
  22. render = web.template.render('templates', base='base', globals=t_globals)  
  23. #建立登入表單
  24. login = web.form.Form(  
  25.                       web.form.Textbox('username'),  
  26.                       web.form.Password('password'),  
  27.                       web.form.Button('login')  
  28.                       )  
  29. #首頁類
  30. class Index:  
  31.     def GET(self):  
  32.         login_form = login()  
  33.         posts = model.get_posts()  
  34.         return render.index(posts, login_form)  
  35.     def POST(self):  
  36.         login_form = login()  
  37.         if login_form.validates():  
  38.             if login_form.d.username == 'admin' /  
  39.                 and login_form.d.password == 'admin':  
  40.                 web.setcookie('username', login_form.d.username)  
  41.         raise web.seeother('/')  
  42. #檢視文章類
  43. class View:  
  44.     def GET(self, id):  
  45.         post = model.get_post(int(id))  
  46.         return render.view(post)  
  47. #新建文章類
  48. class New:  
  49.     form = web.form.Form(  
  50.                          web.form.Textbox('title',  
  51.                          web.form.notnull,  
  52.                          size=30,  
  53.                          description='Post title: '),  
  54.                          web.form.Textarea('content',  
  55.                          web.form.notnull,  
  56.                          rows=30,  
  57.                          cols=80,  
  58.                          description='Post content: '),  
  59.                          web.form.Button('Post entry'),  
  60.                          )  
  61.     def GET(self):  
  62.         form = self.form()  
  63.         return render.new(form)  
  64.     def POST(self):  
  65.         form = self.form()  
  66.         ifnot form.validates():  
  67.             return render.new(form)  
  68.         model.new_post(form.d.title, form.d.content)  
  69.         raise web.seeother('/')  
  70. #刪除文章類
  71. class Delete:  
  72.     def POST(self, id):  
  73.         model.del_post(int(id))  
  74.         raise web.seeother('/')  
  75. #編輯文章類
  76. class Edit:  
  77.     def GET(self, id):  
  78.         post = model.get_post(int(id))  
  79.         form = New.form()  
  80.         form.fill(post)  
  81.         return render.edit(post, form)  
  82.     def POST(self, id):  
  83.         form = New.form()  
  84.         post = model.get_post(int(id))  
  85.         ifnot form.validates():  
  86.             return render.edit(post, form)  
  87.         model.update_post(int(id), form.d.title, form.d.content)  
  88.         raise web.seeother('/')  
  89. #退出登入
  90. class Logout:  
  91.     def GET(self):  
  92.         web.setcookie('username''', expires=-1)  
  93.         raise web.seeother('/')  
  94. #定義404錯誤顯示內容
  95. def notfound():  
  96.     return web.notfound("Sorry, the page you were looking for was not found.")  
  97. app.notfound = notfound  
  98. #執行
  99. if