工作環境中需要經常生產和測試伺服器,機房一直很混亂,因此萌生了開發乙個簡單方便的伺服器管理系統(說的好高大上,其實就是個可以獲取伺服器資訊的小web應用)。之所以選擇webpy,正式因為它夠簡單,尤其是對於我這種python新人來說。它是一款輕量級的python web開發框架,對於個人開發小應用來說很適合。
安裝:python setup.py install
hello, world如下:
import在webpy中,url請求的對映在urls元組中,如上圖中get ip:port/,會直接呼叫index類的get方法,返回字串'hello, world!';weburls =(
'/', '
index')
class
index:
defget(self):
return
"hello, world!"if
__name__ == "
__main__
":
class index中包含了乙個get方法,用來處理與index相應的url的get請求的;
web包含兩種方法:get和post
對於get,可以採用:
class而,對於post,採用:index:
defget(self):
return
"hello, world!
"
class在webpy中,一般採用templates來存放html頁面檔案。大概的訪問方式如下:index:
defpost(self):
data = web.input(name=none)
return
"hello,
" + data.name + "
!"
urls =(urls中定義了url對映,訪問ip:port/img會直接條用class image來處理;'/img
', '
image')
render = web.template.render('
templates')
class
image:
defget(self):
return render.image()
web.template.render(path)是用來指定存放html的目錄,上面指定了html的指定存放位置位於當前資料夾下的templates檔案下;
返回的render.image()表示在render所指定的目錄下尋找image.html檔案並作為返回結果。
classshow:
defget(self):
return render.show('hello world!')
$def with(str)show類是用來展示字串'hello world!',下面的html為show.html,webpy支援模板,支援引數以$def with()開始作為函式的開始;<
html
>
<
body
>
$for i in range(5):
<
h1>$str
h1>
<
body
>
html
>
在html中可以使用python語句,但語句前需要新增$,在上面的html中str會在頁面上列印5次。
靜態檔案
在webpy中,提供了預設的靜態檔案的訪問方式
在 apache 中可以使用 alias 指令,在處理 web.py 之前將請求對映到指定的目錄。
在webpy中提供了資料庫訪問的api,其實從原始碼中可以看出來是對mysqldb的封裝,但為了方便起見用起來還是可以的。
db = web.database(dbn='webpy也支援事務:mysql
', db='
test
', user='
root
', pw='
123123')
defnew_post(title, content):
db.insert(
'news
', title=title, content=content, posted_on=datetime.datetime.utcnow())
defget_post(id):
try:
return db.select('
news
', where='
id=$id
', vars=locals())[0]
except
indexerror:
return
none
defget_posts():
return db.select('
news
', order = '
id desc')
defdel_post(id):
db.delete(
'news
', where = '
id = $id
', vars =locals())
defupdate_post(id, title, content):
db.update(
'news
', where='
id = $id
', vars=locals(), title=title, content=content)
importwebdb = web.database(dbn="
postgres
", db="
webpy
", user="
foo", pw=""
)t =db.transaction()
try:
db.insert(
'person
', name='
foo'
) db.insert(
'person
', name='
bar'
)except
: t.rollback()
raise
else
: t.commit()
本作品採用cococo點點
webpy使用筆記 二 session的使用
webpy使用系列之session的使用,雖然工作中使用的是django,但是自己並不喜歡那種大而全的東西 什麼都給你準備好了,自己好像乙個機械人一樣趕著重複的基本工作,從在學校時候就養成了追究原理的習慣,從而有了這篇session的使用和說明。下面為官方的例子,用session來儲存頁面訪問的次數...
Jupyter Notebook使用筆記(一)
notebook 自帶一組快捷鍵,能提高效率 感 jio 有點要脫離滑鼠了 下面大概總結一下,也方便以後使用。notebook裡每乙個叫做cell。command mode 和 edit mode。在乙個cell中,按下enter,進入edit模式,按下esc,進入command 模式在乙個cell...
kettle使用筆記 一
一 常用目錄結構 二 單錶操作 1.表輸入 要遷移庫表 2.表輸出 遷移目標庫表 單錶遷移這兩個就可以滿足 如果欄位要遷移的表跟目標表字段名稱不一致 可以不一致,上面也滿足 想做一致。可以用轉換中欄位選擇對映 三 多表鏈結遷移 方式1 多表關聯,可以手動寫關聯sql。直接乙個輸入,乙個輸出就可以實現...