webpy入門
webpy install
webpy 'hello world'可以參考webpy的官方文檔:http:///docs/0.3/tutorial hello, world如下: import web urls = ( '/', 'index' ) class index: def GET(self): return "Hello, world!" if __name__ == "__main__": app = web.application(urls, globals()) app.run() 在webpy中,,url請(qǐng)求的映射在urls元組中,,如上圖中GET ip:port/,會(huì)直接調(diào)用index類的GET方法,,返回字符串'hello, world!',; class index中包含了一個(gè)GET方法,用來處理與index相應(yīng)的url的GET請(qǐng)求的,; 在主函數(shù)中,,只需要?jiǎng)?chuàng)建一個(gè)application對(duì)象,運(yùn)行就可以開啟一個(gè)簡(jiǎn)單的web應(yīng)用,默認(rèn)的地址為:127.0.0.1:8080 GET && POSTweb包含兩種方法:GET和POST 對(duì)于GET,,可以采用: class index: def GET(self): return "Hello, world!" 而,,對(duì)于POST,采用: class index: def POST(self): data = web.input(name=None) return "Hello, " + data.name + "!" html模板在webpy中,,一般采用templates來存放html頁面文件,。大概的訪問方式如下: urls = ( '/img', 'image' ) render = web.template.render('templates') class image: def GET(self): return render.image() urls中定義了url映射,訪問ip:port/img會(huì)直接條用class image來處理,; web.template.render(path)是用來指定存放html的目錄,,上面指定了html的指定存放位置位于當(dāng)前文件夾下的templates文件下; 返回的render.image()表示在render所指定的目錄下尋找image.html文件并作為返回結(jié)果,。 class show: def GET(self): return render.show('hello world!') show類是用來展示字符串'hello world!',,下面的html為show.html,webpy支持模板,,支持參數(shù)以$def with()開始作為函數(shù)的開始,; 在html中可以使用python語句,,但語句前需要添加$,,在上面的html中str會(huì)在頁面上打印5次。 靜態(tài)文件 在webpy中,,提供了默認(rèn)的靜態(tài)文件的訪問方式
webpy db在webpy中提供了數(shù)據(jù)庫訪問的API,其實(shí)從源碼中可以看出來是對(duì)MySQLdb的封裝,,但為了方便起見用起來還是可以的,。 db = web.database(dbn='mysql', db='test', user='root', pw='123123') def new_post(title, content): db.insert('news', title=title, content=content, posted_on=datetime.datetime.utcnow()) def get_post(id): try: return db.select('news', where='id=$id', vars=locals())[0] except IndexError: return None def get_posts(): return db.select('news', order = 'id DESC') def del_post(id): db.delete('news', where = 'id = $id', vars = locals()) def update_post(id, title, content): db.update('news', where='id = $id', vars=locals(), title=title, content=content) webpy也支持事務(wù): import web db = 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()
|
|