• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            無法遞歸的五點半

            for_each(day.begin(),day.end(),bind2nd(Add(),me))

            導航

            <2025年5月>
            27282930123
            45678910
            11121314151617
            18192021222324
            25262728293031
            1234567

            統計

            常用鏈接

            留言簿(4)

            隨筆分類

            隨筆檔案

            文章分類

            相冊

            收藏夾

            C++

            Unix/Linux

            個人主頁

            其他

            軟件工程

            網絡管理

            綜合

            搜索

            積分與排名

            最新評論

            閱讀排行榜

            評論排行榜

            Quixote筆記

            又是Python。呵呵。誰叫人家帥呢

            Quixote的部署

                在Quixote官方白皮書中已經詳細描述了Quixote的工作模式。Quixote可以使用Python自代的http_server(主要用于開發調試)和與Apache(或lighttpd)配合使用。
                Quixote與Apache配合使用方式如下:
            1. 使用CGI,文檔中稱為egular CGI。被認為效率最低的一種方式,因為每一個請求都會創建一個新的進程。
            2. 使用fastCGI,CGI可以運行fastCGI一定是可以應用的。這也是豆瓣采用的方式。在Quixote作者的一個PPT中,他認為fastCGI是buggy的。哦:(也不至于啊。我們正在尋找使用fastCGI的部署經驗。
            3. 使用mod_python,將python代碼嵌入到Apache中。
            4. 使用SCGI,這是作者推薦的。使用Apache SCGI module scgi_mod將遵循SCGI協議Apache將請求發送到相應的Socket如localhost:3001。而這個Socket由本地運行的一個 Python程序打開。這個Python程序將處理請求,并返回結果。

            SCGI的配置

                Quixote的網站上對SCGI的描述:SCGI協議是CGI協議的替代。它是一種應用程序與HTTP服務接口標準。它有些像FastCGI但他的設計更容易實現。

                配置SCGI過程如下:
            • 安裝各個模塊不在話下,debian讓程序員有了懶惰的美德:
                  #aptitude install libapache2-mod-scgi python-scgi python-quixote

            • Apache的配置,添加配置到apache.conf。(有些教程中加入了SetHandler scgi-handler ,但這個加上就很本不會和3000通信。可能是版本的問題。最好不用。)
                  <Location "/qx">
                       SCGIServer localost:3000
                       SCGIHandler On
                  </Location> 

            • 重啟Apache
                配置完成。SCGI的好處在于,修改了Python程序,不用重啟Apache,只要重啟SCGI就可以了。

            第一個Quixote程序

                一切就緒,我們來一次Quixote的完整之旅。

            • scgi程序要求有一個服務打開3000端口。啟動scgi的程序如下:
             1 
             2 #!/usr/bin/python
             3 # -*- coding: utf-8 -*-
             4 
             5 from scgi.quixote_handler import QuixoteHandler, main
             6 from quixote import enable_ptl
             7 from quixote.publish import Publisher
             8 enable_ptl() #啟動PTL
             9 
            10 def create_publisher():
            11     from ourroot import RootDirectory
            12     return Publisher(RootDirectory(), display_exceptions='plain')
            13 
            14 if __name__ == '__main__':
            15     from quixote.server import scgi_server
            16     scgi_server.run(create_publisher, port=3000, script_name="/qx")
            17 

            • 程序結構是比較簡單的,使用的是scgi_server的run方法。要注意的是run方法中的script_name和前面apache 的配置Location是一樣的。程序的關鍵是導入了ourroot這樣一個ptl 。下面是我們的第一個ptl程序。
             1 
             2 # -*- coding: utf-8 -*-
             3 """這個是我們第一個例子的根目錄
             4 """
             5 from quixote.directory import Directory
             6 
             7 class RootDirectory(Directory):
             8     _q_exports = [""]
             9     def _q_index [html] (self):
            10         print "debug message from the index page"
            11         """
            12         <html>
            13         <head>
            14         <meta http-equiv="Content-Type" content="text/html charset=UTF-8" />
            15         <title>第一個例子</title>
            16         </head>
            17         <body>
            18         <h1>第一個例子有中文!</h1>
            19         </body>
            20         </html>
            21         """
            22 

            • 現在在瀏覽器中輸入http://localhost/qx就可以看到結果了。
            • 除了運行上面的python腳本,也可以采用這樣的方式運行scgi:
            • python /var/lib/python-support/python2.5/quixote/server/scgi_server.py \
                  --factory
              =FirstApp.create_publisher \
                  --script-name
              =/qx  --port=3000


            Quixote 中文化的要點

                Quixote的中文設置好像很麻煩。其實隨著python、Quixote版本的推進,現在這個問題已經很簡單了。字符集使用的是utf-8。使用gb2312可能也是可以的。

            1. 所有源代碼使用utf-8在程序的開始加上# -*- coding: utf-8 -*-
            2. ptl的html模板加上content="text/html charset=UTF-8"
            3. 關鍵:在quixote的安裝路徑下有__init__.py,將其中的DEFAULT_CHARSET = 'iso-8859-1'改成 'utf-8'
            4. 也可以不修改__init__.py,使用Publisher的時候把Publisher擴展一下:
            1 class UTF8Publisher(Publisher):
            2     quixote.DEFAULT_CHARSET = "utf-8"

            posted on 2008-04-19 15:11 五點半 閱讀(6247) 評論(15)  編輯 收藏 引用 所屬分類: Python

            評論

            # re: Quixote筆記 2008-04-21 11:04 你猜

            哈哈哈,你肯定不知道我是誰.  回復  更多評論   

            # re: Quixote筆記 2009-07-09 09:47 你再猜

            哈哈哈哈,你肯定更不知道我是誰.  回復  更多評論   

            # re: Quixote筆記 2010-01-06 23:41 你再再猜

            哈哈哈哈哈,你肯定更更不知道我是誰.  回復  更多評論   

            # re: Quixote筆記 2010-01-29 17:08 愛猜不猜

            哈哈哈哈哈哈,你肯定加很肯定加超級肯定我想知道你是誰?  回復  更多評論   

            # re: Quixote筆記 2010-04-25 13:32 不猜拉倒

            哈哈哈哈哈哈哈哈哈哈哈哈,你肯定肯定加很肯定加超級肯定加超超級肯定我想知道你是誰?  回復  更多評論   

            # re: Quixote筆記 2010-11-17 11:27 拉到再猜

            哈哈哈,猜了兩年半了你也沒猜出我是誰  回復  更多評論   

            # re: Quixote筆記 2010-12-29 20:18 猜你媽的B

            哈哈哈哈哈哈哈哈哈,我猜到你他媽是誰了  回復  更多評論   

            # re: Quixote筆記 2011-04-25 16:16 我猜我猜我猜猜猜

            哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈,四年了,還不知道我是誰吧~  回復  更多評論   

            # re: Quixote筆記 2011-07-04 12:47 我繼續猜猜

            也肯定不知道我是誰  回復  更多評論   

            # re: Quixote筆記 2011-08-03 13:11 猜你ba的gun

            再猜,嘣了你  回復  更多評論   

            # re: Quixote筆記 2011-08-26 16:32 還猜?

            在怎么猜都猜不出我是誰  回復  更多評論   

            # re: Quixote筆記 2012-01-21 19:40 誰再猜!?

            再猜!?  回復  更多評論   

            # re: Quixote筆記 2013-03-28 00:17 黃先生

            路過的黃先生表示這是他長那么大以來見過最無聊的事兒.......  回復  更多評論   

            # re: Quixote筆記 2013-07-11 17:36 尼瑪,好有愛

            rt  回復  更多評論   

            # re: Quixote筆記 2013-11-12 17:04 繼續猜?

            居然能看到這么有愛的評論  回復  更多評論   

            久久婷婷五月综合色奶水99啪| 精品久久久久久国产| 久久精品女人天堂AV麻| 久久久久久国产精品美女| 久久亚洲国产成人影院| 97久久超碰国产精品旧版| 久久美女人爽女人爽| 久久中文精品无码中文字幕| 亚洲精品高清国产一线久久| 亚洲国产精品久久久久网站| 亚洲国产香蕉人人爽成AV片久久 | 久久99精品久久久久久久久久| 久久精品国产亚洲综合色| 香蕉99久久国产综合精品宅男自 | 伊人色综合久久天天人守人婷 | 久久亚洲高清观看| 久久精品国产亚洲αv忘忧草 | www久久久天天com| 亚洲国产精品无码久久青草| 久久精品水蜜桃av综合天堂| 亚洲精品久久久www| 国产99久久九九精品无码| 精品国际久久久久999波多野| 青青草国产97免久久费观看| 久久这里只精品国产99热| 久久夜色精品国产噜噜亚洲AV| 久久影院午夜理论片无码| 伊人丁香狠狠色综合久久| 99久久精品免费看国产一区二区三区| 久久国产美女免费观看精品| 精品久久久久久国产91| 奇米综合四色77777久久| 久久经典免费视频| 国产精品久久久久久久久久影院| 精品无码久久久久久久久久 | 91精品日韩人妻无码久久不卡| 久久久久99精品成人片欧美| 久久精品水蜜桃av综合天堂| 麻豆AV一区二区三区久久 | 亚洲综合婷婷久久| 久久国产精品视频|