国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - web.py 十分鐘創建簡易博客實現代碼

web.py 十分鐘創建簡易博客實現代碼

2020-08-20 10:16TCM-caleng Python

web.py是一款輕量級的Python web開發框架,簡單、高效、學習成本低,特別適合作為python web開發的入門框架

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

二、web.py安裝
1、下載:http://webpy.org/static/web.py-0.33.tar.gz
2、解壓并進入web.py-0.33目錄,安裝:python setup.py install

三、創建簡易博客
1、目錄說明:主目錄blog/,模板目錄blog/templates
2、在數據庫“test”中創建表“entries”

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

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
#載入框架
import web
#載入數據庫操作model(稍后創建)
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('/')
#查看文章類
class View:
 def GET(self, id):
  post = model.get_post(int(id))
  return render.view(post)
#新建文章類
class New:
 form = web.form.Form(
       web.form.Textbox('title',
       web.form.notnull,
       size=30,
       description='Post title: '),
       web.form.Textarea('content',
       web.form.notnull,
       rows=30,
       cols=80,
       description='Post content: '),
       web.form.Button('Post entry'),
       )
 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('/')
#退出登錄
class Logout:
 def GET(self):
  web.setcookie('username', '', expires=-1)
  raise web.seeother('/')
#定義404錯誤顯示內容
def notfound():
 return web.notfound("Sorry, the page you were looking for was not found.")
 
app.notfound = notfound
#運行
if __name__ == '__main__':
 app.run()

4、在主目錄創建model.py,blog/model.py

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import web
import datetime
#數據庫連接
db = web.database(dbn = 'MySQL', db = 'test', user = 'root', pw = '123456')
#獲取所有文章
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,
  posted_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)

5、在模板目錄依次創建:base.html、edit.html、index.html、new.html、view.html

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
<!-- base.html -->
$def with (page)
<html>
 <head>
  <title>My Blog</title>
  <mce:style><!--
   #menu {
    width: 200px;
    float: right;
   }
  
--></mce:style><style mce_bogus="1">   #menu {
    width: 200px;
    float: right;
   }
  </style>
 </head>
 
 <body>
  <ul id="menu">
   <li><a href="/" mce_href="">Home</a></li>
   $if cookie().get('username'):
    <li><a href="/new" mce_href="new">New Post</a></li>
  </ul>
  
  $:page
 </body>
</html>
 
<!-- edit.html -->
$def with (post, form)
<h1>Edit $form.d.title</h1>
<form action="" method="post">
 $:form.render()
</form>
<h2>Delete post</h2>
<form action="/delete/$post.id" method="post">
 <input type="submit" value="Delete post" />
</form>
 
<!-- index.html -->
$def with (posts, login_form)
<h1>Blog posts</h1>
$if not cookie().get('username'):
 <form action="" method="post">
 $:login_form.render()
 </form>
$else:
 Welcome $cookie().get('username')!<a href="/logout" mce_href="logout">Logout</a>
<ul>
 $for post in posts:
  <li>
   <a href="/view/$post.id" mce_href="view/$post.id">$post.title</a>
   on $post.posted_on
   $if cookie().get('username'):
    <a href="/edit/$post.id" mce_href="edit/$post.id">Edit</a>
    <a href="/delete/$post.id" mce_href="delete/$post.id">Del</a>
  </li>
</ul>
 
<!-- new.html -->
$def with (form)
<h1>New Blog Post</h1>
<form action="" method="post">
$:form.render()
</form>
 
<!-- view.html -->
$def with (post)
<h1>$post.title</h1>
$post.posted_on<br />
$post.content

6、進入主目錄在命令行下運行:python blog.py,將啟動web服務,在瀏覽器輸入:http://localhost:8080/,簡易博客即已完成。

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 国产欧美精品一区二区色综合 | 成人av电影网| 久久成人免费视频 | 国产精品伦一区二区三级视频 | 亚洲精品成人悠悠色影视 | 欧美日韩免费在线 | 久久久久久久久久久免费视频 | www免费网站在线观看 | 亚洲日本乱码一区两区在线观看 | 亚洲国产精品久久久久 | 久久久91精品国产一区二区三区 | 中文字幕在线观看第一页 | av在线中文 | 波多野吉衣网站 | 香蕉国产 | 日本中文字幕在线播放 | 亚洲综合中文字幕在线 | 久久国产一区二区 | 日韩毛片免费在线观看 | 国产精品久久九九 | 精品麻豆剧传媒av国产九九九 | 国产日韩免费视频 | 欧美一区二区三区在线 | 伊人久久国产 | 日日夜夜视频 | 蜜臀久久精品99国产精品日本 | 拍真实国产伦偷精品 | 久久久精品网 | 一区视频在线 | 求av网址 | 精品国产成人 | 精品无码久久久久久久动漫 | 一级毛片免费看 | 在线色网站 | 噜噜噜噜狠狠狠7777视频 | 看黄免费 | 久久久国产精品一区 | 福利一区二区 | 亚洲综合色自拍一区 | 亚洲国产视频一区 | 一大道一二三区不卡 |