webpy使用筆記(一)

2021-09-06 18:41:27 字數 3344 閱讀 2275

工作環境中需要經常生產和測試伺服器,機房一直很混亂,因此萌生了開發乙個簡單方便的伺服器管理系統(說的好高大上,其實就是個可以獲取伺服器資訊的小web應用)。之所以選擇webpy,正式因為它夠簡單,尤其是對於我這種python新人來說。它是一款輕量級的python web開發框架,對於個人開發小應用來說很適合。

安裝:python setup.py install

hello, world如下:

import

weburls =(

'/', '

index')

class

index:

defget(self):

return

"hello, world!"if

__name__ == "

__main__

":

在webpy中,url請求的對映在urls元組中,如上圖中get ip:port/,會直接呼叫index類的get方法,返回字串'hello, world!';

class index中包含了乙個get方法,用來處理與index相應的url的get請求的;

web包含兩種方法:get和post

對於get,可以採用:

class

index:

defget(self):

return

"hello, world!

"

而,對於post,採用:

class

index:

defpost(self):

data = web.input(name=none)

return

"hello,

" + data.name + "

!"

在webpy中,一般採用templates來存放html頁面檔案。大概的訪問方式如下:

urls =(

'/img

', '

image')

render = web.template.render('

templates')

class

image:

defget(self):

return render.image()

urls中定義了url對映,訪問ip:port/img會直接條用class image來處理;

web.template.render(path)是用來指定存放html的目錄,上面指定了html的指定存放位置位於當前資料夾下的templates檔案下;

返回的render.image()表示在render所指定的目錄下尋找image.html檔案並作為返回結果。

class

show:

defget(self):

return render.show('hello world!')

$def with(str)

<

html

>

<

body

>

$for i in range(5):

<

h1>$str

h1>

<

body

>

html

>

show類是用來展示字串'hello world!',下面的html為show.html,webpy支援模板,支援引數以$def with()開始作為函式的開始;

在html中可以使用python語句,但語句前需要新增$,在上面的html中str會在頁面上列印5次。

靜態檔案

在webpy中,提供了預設的靜態檔案的訪問方式

在 apache 中可以使用 alias 指令,在處理 web.py 之前將請求對映到指定的目錄。

在webpy中提供了資料庫訪問的api,其實從原始碼中可以看出來是對mysqldb的封裝,但為了方便起見用起來還是可以的。

db = web.database(dbn='

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)

webpy也支援事務:

import

webdb = 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。直接乙個輸入,乙個輸出就可以實現...