国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

Karrigell 入門簡介

2024-07-21 02:30:27
字體:
來源:轉載
供稿:網友

原文: http://www.devshed.com/c/a/python/karrigell-for-python/

因為python并不是特別為web開發而生,所以現在很多的python使用者都在開發能夠讓python運行于web的框架.karrigell就是現在為數眾多的python/web框架之一.本文將對karrigell做簡要的介紹.

簡介

karrigell是一個功能強大且靈活的python/web框架,為web開發提供了多種解決方案.并且,很重要的,它的安裝和使用都非常的簡單.即使是python的初學者,也不會在使用karrigell的時候犯迷糊,并且karrigell也沒有因為結構簡單而限制python的一些特性.它提供了自己的web服務器完成工作,但是也非常容易的和其他的web服務器(例如apache)結合工作,所以如果你選擇了karrigell,你仍然可以使用之前一直在使用的web服務器.

這篇文章將從karrigell的安裝開始說起,介紹數個karrigell的重要特性.

安裝karrigell

上面說了,karrigell的安裝一點都不麻煩.你要做的第一步是到 sourceforge 下載最新的karrigell,當你下載了zip包后,將其解壓縮到一個容易找到的目錄.然后直接雙擊karrigell.py啟動karrigell的內置web服務器.如果你現在并不想把karrigell和其他的web服務器結合使用,那karrigell的安裝到此就結束了.

但如果你想要設置你的web服務器來和karrigell結合,我們拿apache來舉例子.我們現在需要karrigell在apache的后臺運行,來使apache將相關的請求傳送給karrigell
因為apache一般會運行在80端口,你需要給karrigell設置一個其他的運行端口.有兩個方法來達到這個目的,其一是使用命令行來完成,或者可以改變karrigell的配置文件.先來看如何用命令行,我們將在8080端口運行karrigell.

c:/karrigell>karrigell.py -p 8080

第二種,你需要找到karrigell.ini,然后加上這么一句

port=8080

現在你需要配置apache將有關的請求轉向到karrigell.一般來說,你希望apache可以處理任何的靜態文件請求,比如php.你可以和apache共享同一個路徑, 也可以設立單獨的路徑..然后設置那些文件需要apache把請求傳遞給karrigell,你需要添加下面的內容到apache的 httpd.conf 文件.

rewriteengine on
rewriterule ^/(.*).py(.*) http://localhost:8080/$1.py$2 [l,p]
rewriterule ^/(.*).ks(.*) http://localhost:8080/$1.ks$2 [l,p]
rewriterule ^/(.*).hip(.*) http://localhost:8080/$1.hip$2 [l,p]
rewriterule ^/(.*).pih(.*) http://localhost:8080/$1.pih$2 [p]

如果你想, 你可以設置全部的特定文件請求都轉給karrigell.在本文中,我們將使用testarea這個路徑,所以我們這樣設置httpd.conf:

rewriteengine on
rewriterule ^/testarea(.*) http://localhost:8080/testarea$1 [p]

當然你可以這樣:

rewriteengine on
rewriterule ^/testarea/(.*).py(.*)
http://localhost:8080/testarea/$1.py$2 [l,p]
rewriterule ^/testarea/(.*).ks(.*)
http://localhost:8080/testarea/$1.ks$2 [l,p]
rewriterule ^/testarea/(.*).hip(.*)
http://localhost:8080/testarea/$1.hip$2 [l,p]
rewriterule ^/testarea/(.*).pih(.*)
http://localhost:8080/testarea/$1.pih$2 [p]

|||

scripts和services

python scripts和karrigell services將是python開發者使用karrigell最容易接觸的兩個概念.python scripts就是python的腳本,開發者使用print語句輸出到用戶瀏覽器的內容.如果你還不明白,建立一個testarea目錄,然后我們將開始創建我們的第一個python scripts.新建一個文件test.py:

print "<center>"
print "hello!"
print "<br /><br />"
print "karrigell is configured and working."
print "</center>"

在瀏覽器中打開這個文件,如果之前你的karrigell都正確設置,那你將會看到輸出的內容.
python scripts也可以容易的使用表單.讓我們再來創建一個簡單的頁面,用戶可以在這個頁面輸入自己的名字.新建文件askname.py:

if query.has_key ( "name" ):
   print "your name is", _name + "."
else:
   print "what is your name?<br />"
   print "<form>"
   print "<input type='text' name='name' /><br />"
   print "<input type='submit' value='proceed' />"
   print "</form>"

karrigell services的編寫和python scripts類似.這個的作用是映射請求到用戶指定的方法.指定方法的名字通過跟在karrigell services后面進行傳遞.比如,下面這個url將會調用test這個方法

http://localhost/testarea/test.ks/test

讓我們實際編寫下這個例子

def index():
   print "index function."
def test():
   print "test function."

如果不傳遞方法名而使用這些python scripts,你的程序會默認執行index方法.如果傳遞了方法名test,那test方法就會被調用.調用一個不存在的方法會拋出異常.
使用karrigell services來處理表單傳遞的數據也很簡單.讓我們來創建一個ascname.ks

def index():
   print "what is your name?<br />"
   print "<form action='namesubmit'>"
   print "<input type='text' name='name' /><br />"
   print "<input type='submit' value='proceed' />"
   print "</form>"
def namesubmit ( name ):
   print "your name is", name + "."

當然,允許外部公開訪問你的方法是一件很危險的事情,為了阻止不允許的用戶訪問你的方法,按照下面所述給你的方法加前綴:

def _private():
   pass

嘗試訪問_private方法將會拋出異常.

|||

使用hip

在askname.py,有一件事情值得注意,這個代碼鎘刑

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 武城县| 衡山县| 雷山县| 什邡市| 顺平县| 株洲市| 黔东| 会泽县| 建德市| 浦县| 县级市| 建瓯市| 德保县| 威远县| 贵德县| 乌鲁木齐市| 清原| 吐鲁番市| 庆安县| 香河县| 当雄县| 黄梅县| 修武县| 阿瓦提县| 黄山市| 陆良县| 阿拉善盟| 沙雅县| 紫云| 交城县| 彭山县| 永和县| 安陆市| 普洱| 平乐县| 兴安县| 义马市| 通州区| 浙江省| 轮台县| 拜泉县|