国产成人毛片视频|星空传媒久草视频|欧美激情草久视频|久久久久女女|久操超碰在线播放|亚洲强奸一区二区|五月天丁香社区在线|色婷婷成人丁香网|午夜欧美6666|纯肉无码91视频

Webpy

Web.py Cookbook 簡體中文版歡迎來到web.py 0.3的Cookbook 。提醒您注意:某些特性在之前的版本中并不可用。當(dāng)前開發(fā)版本是0.3。格式1. 在編排內(nèi)容時,請盡量使用coo

Web.py Cookbook 簡體中文版

歡迎來到web.py 0.3的Cookbook 。提醒您注意:某些特性在之前的版本中并不可用。當(dāng)前開發(fā)版本是0.3。

格式

1. 在編排內(nèi)容時,請盡量使用cookbook 格式... 如:

問題:如何訪問數(shù)據(jù)庫中的數(shù)據(jù)?

解法:使用如下代碼...

2. 請注意,網(wǎng)址中不必含有"web" 。如"/cookbook/select",而非"/cookbook/web.select"。

3. 該手冊適用于0.3版本,所以您在添加代碼時,請確認(rèn)代碼能在新版本中工作。

基本應(yīng)用:

? ? ?

? ? ?

?

,

高級應(yīng)用

? ? ? ? ? ? ? ? Sessions and user state 會話和用戶狀態(tài):

? ? ? ? ? ? ?

Utils 實用工具:

? ?

,

?

Templates 模板

? ? ? ? ? ? ? ? ? Testing 測試:

? ?

User input 用戶輸入:

? ? ? ?

,

? ?

Database 數(shù)據(jù)庫

? ? ? ? ? ? ? ? ? ?

Deployment 部署:

mod_python deployment through Apache (requested)

? ? ? ? ? ? ?

,

Subdomains 子域名:

Subdomains and how to access the username (requested) Hello World!

問題

如何用web.py 實現(xiàn)Hello World!?

解法

URL 開頭添加代碼:

然后用redirect 類處理以'/'結(jié)尾的網(wǎng)址:

,

提供靜態(tài)文件 (諸如js 腳本, css樣式表和圖象文件) 問題

如何在web.py 自帶的web server中提供靜態(tài)文件訪問?

解法

在當(dāng)前應(yīng)用的目錄下,創(chuàng)建一個名為static 的目錄,把要提供訪問的靜態(tài)文件放在里面即可。

例如, 網(wǎng)址 http://localhost/static/logo.png 將發(fā)

送 ./static/logo.png 給客戶端。

理解URL 控制

問題: 如何為整個網(wǎng)站設(shè)計一個URL 控制方案 / 調(diào)度模式 解決:

web.py 的URL 控制模式是簡單的、強大的、靈活的。在每個應(yīng)用的最頂部,你通常會看到整個URL 調(diào)度模式被定義在元組中:

,

這些元組的格式是: URL 路徑, 處理類 這組定義有多少可以定義多少。如果你并不知道URL 路徑和處理類之間的關(guān)系,請在閱讀cookbook 之前先閱讀,或者快速入門。

路徑匹配

你可以利用強大的正則表達式去設(shè)計更靈活的URL 路徑。比如

/(test1|test2) 可以捕捉 /test1 或 /test2。要理解這里的關(guān)鍵,匹配是依據(jù)URL 路徑的。比如下面的URL:

這個URL 的路徑是 /myapp/greetings/hello。web.py 會在內(nèi)部給URL 路徑加上^和$ ,這樣 /tasks/ 不會匹配 /tasks/addnew。URL 匹配依賴于“路徑”,所以不能這樣使用,如: /tasks/delete?name=(. ) ,?之后部分表示是“查詢”,并不會被匹配。閱讀URL 組件的更多細節(jié),請訪問。

捕捉參數(shù)

你可以捕捉URL 的參數(shù),然后用在處理類中:

在 list/后面的這塊會被捕捉,然后作為參數(shù)被用在GET 或POST:

,

你可以根據(jù)需要定義更多參數(shù)。同時要注意URL 查詢的參數(shù)(?后面的內(nèi)容) 也可以用取得。

開發(fā)子程序的時候注意

為了更好的控制大型web 應(yīng)用,web.py 支持子程序。在為子程序設(shè)計URL 模式的時候,記住取到的路徑(web.ctx.path)是父應(yīng)用剝離后的。比如,你在主程序定義了URL"/blog"跳轉(zhuǎn)到'blog' 子程序,那沒在你blog 子程序中所有URL 都是以"/"開頭的,而不是"/blog"。查看取得更多信息。

跳轉(zhuǎn)(seeother)與重定向(redirect)

web.seeother 和 web.redirect

問題

在處理完用戶輸入后(比方說處理完一個表單),如何跳轉(zhuǎn)到其他頁面?

POST 方法接收到一個post 并完成處理之后,它將給瀏覽器發(fā)送一個303消息和新網(wǎng)址。接下來,瀏覽器就會對這個新網(wǎng)址發(fā)出GET 請求,從而完成跳轉(zhuǎn)。

注意:web.seeother 和web.redirect 不支持0.3以下版本。

,

區(qū)別

用web.redirect 方法似乎也能做同樣的事情,但通常來說,這并太友好。因為web.redirect 發(fā)送的是301消息-這是永久重定向。因為大多數(shù)Web 瀏覽器會緩存新的重定向,所以當(dāng)我們再次執(zhí)行該操作時,會自動直接訪問重定向的新網(wǎng)址。很多時候,這不是我們所想要的結(jié)果。所以在提交表單時,盡量使用seeother 。但是在下面要提到的這種場合,用redirect 卻是最恰當(dāng)?shù)模何覀円呀?jīng)更改了網(wǎng)站的網(wǎng)址結(jié)構(gòu),但是仍想讓用戶書簽/收藏夾中的舊網(wǎng)址不失效。

(注:要了解seeother 和redirect 的區(qū)別,最好是看一下http 協(xié)議中不同消息碼的含義。)

使用子應(yīng)用

問題

如何在當(dāng)前應(yīng)用中包含定義在其他文件中的某個應(yīng)用?

解法

在blog.py 中:

,

當(dāng)前的主應(yīng)用code.py :

提供XML 訪問

問題

如何在web.py 中提供XML 訪問?

如果需要為第三方應(yīng)用收發(fā)數(shù)據(jù),那么提供xml 訪問是很有必要的。 解法

標(biāo)簽: