• <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>

            無(wú)法遞歸的五點(diǎn)半

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

            導(dǎo)航

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

            統(tǒng)計(jì)

            常用鏈接

            留言簿(4)

            隨筆分類(lèi)

            隨筆檔案

            文章分類(lèi)

            相冊(cè)

            收藏夾

            C++

            Unix/Linux

            個(gè)人主頁(yè)

            其他

            軟件工程

            網(wǎng)絡(luò)管理

            綜合

            搜索

            積分與排名

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            Quixote筆記

            又是Python。呵呵。誰(shuí)叫人家?guī)浤?/span>

            Quixote的部署

                在Quixote官方白皮書(shū)中已經(jīng)詳細(xì)描述了Quixote的工作模式。Quixote可以使用Python自代的http_server(主要用于開(kāi)發(fā)調(diào)試)和與Apache(或lighttpd)配合使用。
                Quixote與Apache配合使用方式如下:
            1. 使用CGI,文檔中稱(chēng)為egular CGI。被認(rèn)為效率最低的一種方式,因?yàn)槊恳粋€(gè)請(qǐng)求都會(huì)創(chuàng)建一個(gè)新的進(jìn)程。
            2. 使用fastCGI,CGI可以運(yùn)行fastCGI一定是可以應(yīng)用的。這也是豆瓣采用的方式。在Quixote作者的一個(gè)PPT中,他認(rèn)為fastCGI是buggy的。哦:(也不至于啊。我們正在尋找使用fastCGI的部署經(jīng)驗(yàn)。
            3. 使用mod_python,將python代碼嵌入到Apache中。
            4. 使用SCGI,這是作者推薦的。使用Apache SCGI module scgi_mod將遵循SCGI協(xié)議Apache將請(qǐng)求發(fā)送到相應(yīng)的Socket如localhost:3001。而這個(gè)Socket由本地運(yùn)行的一個(gè) Python程序打開(kāi)。這個(gè)Python程序?qū)⑻幚碚?qǐng)求,并返回結(jié)果。

            SCGI的配置

                Quixote的網(wǎng)站上對(duì)SCGI的描述:SCGI協(xié)議是CGI協(xié)議的替代。它是一種應(yīng)用程序與HTTP服務(wù)接口標(biāo)準(zhǔn)。它有些像FastCGI但他的設(shè)計(jì)更容易實(shí)現(xiàn)。

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

            • Apache的配置,添加配置到apache.conf。(有些教程中加入了SetHandler scgi-handler ,但這個(gè)加上就很本不會(huì)和3000通信??赡苁前姹镜膯?wèn)題。最好不用。)
                  <Location "/qx">
                       SCGIServer localost:3000
                       SCGIHandler On
                  </Location> 

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

            第一個(gè)Quixote程序

                一切就緒,我們來(lái)一次Quixote的完整之旅。

            • scgi程序要求有一個(gè)服務(wù)打開(kāi)3000端口。啟動(dòng)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() #啟動(dòng)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 

            • 程序結(jié)構(gòu)是比較簡(jiǎn)單的,使用的是scgi_server的run方法。要注意的是run方法中的script_name和前面apache 的配置Location是一樣的。程序的關(guān)鍵是導(dǎo)入了ourroot這樣一個(gè)ptl 。下面是我們的第一個(gè)ptl程序。
             1 
             2 # -*- coding: utf-8 -*-
             3 """這個(gè)是我們第一個(gè)例子的根目錄
             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>第一個(gè)例子</title>
            16         </head>
            17         <body>
            18         <h1>第一個(gè)例子有中文!</h1>
            19         </body>
            20         </html>
            21         """
            22 

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


            Quixote 中文化的要點(diǎn)

                Quixote的中文設(shè)置好像很麻煩。其實(shí)隨著python、Quixote版本的推進(jìn),現(xiàn)在這個(gè)問(wèn)題已經(jīng)很簡(jiǎn)單了。字符集使用的是utf-8。使用gb2312可能也是可以的。

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

            posted on 2008-04-19 15:11 五點(diǎn)半 閱讀(6247) 評(píng)論(15)  編輯 收藏 引用 所屬分類(lèi): Python

            評(píng)論

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

            哈哈哈,你肯定不知道我是誰(shuí).  回復(fù)  更多評(píng)論   

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

            哈哈哈哈,你肯定更不知道我是誰(shuí).  回復(fù)  更多評(píng)論   

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

            哈哈哈哈哈,你肯定更更不知道我是誰(shuí).  回復(fù)  更多評(píng)論   

            # re: Quixote筆記 2010-01-29 17:08 愛(ài)猜不猜

            哈哈哈哈哈哈,你肯定加很肯定加超級(jí)肯定我想知道你是誰(shuí)?  回復(fù)  更多評(píng)論   

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

            哈哈哈哈哈哈哈哈哈哈哈哈,你肯定肯定加很肯定加超級(jí)肯定加超超級(jí)肯定我想知道你是誰(shuí)?  回復(fù)  更多評(píng)論   

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

            哈哈哈,猜了兩年半了你也沒(méi)猜出我是誰(shuí)  回復(fù)  更多評(píng)論   

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

            哈哈哈哈哈哈哈哈哈,我猜到你他媽是誰(shuí)了  回復(fù)  更多評(píng)論   

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

            哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈,四年了,還不知道我是誰(shuí)吧~  回復(fù)  更多評(píng)論   

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

            也肯定不知道我是誰(shuí)  回復(fù)  更多評(píng)論   

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

            再猜,嘣了你  回復(fù)  更多評(píng)論   

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

            在怎么猜都猜不出我是誰(shuí)  回復(fù)  更多評(píng)論   

            # re: Quixote筆記 2012-01-21 19:40 誰(shuí)再猜???

            再猜?。?nbsp; 回復(fù)  更多評(píng)論   

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

            路過(guò)的黃先生表示這是他長(zhǎng)那么大以來(lái)見(jiàn)過(guò)最無(wú)聊的事兒.......  回復(fù)  更多評(píng)論   

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

            rt  回復(fù)  更多評(píng)論   

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

            居然能看到這么有愛(ài)的評(píng)論  回復(fù)  更多評(píng)論   


            只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。
            相關(guān)文章:
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


            精品熟女少妇av免费久久| 国产精品青草久久久久福利99| 久久国内免费视频| 亚洲AV日韩精品久久久久久| 88久久精品无码一区二区毛片| 久久久久这里只有精品| 久久久一本精品99久久精品88| 国产99久久久国产精品~~牛| 亚洲日韩中文无码久久| 91精品国产高清久久久久久91| 久久久久精品国产亚洲AV无码| 成人午夜精品久久久久久久小说| 久久人人爽人人人人片av| 91精品免费久久久久久久久| 久久精品国产亚洲AV香蕉| 国产一区二区精品久久凹凸| …久久精品99久久香蕉国产| 无码人妻久久一区二区三区免费 | 久久久久久久久久久免费精品| 热re99久久精品国99热| 久久最新免费视频| 国产成人无码精品久久久免费| 91久久婷婷国产综合精品青草| 亚洲色欲久久久综合网| 亚洲人成无码网站久久99热国产| 夜夜亚洲天天久久| 久久久综合九色合综国产| 性做久久久久久久| 久久国语露脸国产精品电影| 亚洲乱码日产精品a级毛片久久| 国产综合免费精品久久久| 免费观看久久精彩视频| 青青草原综合久久| 久久亚洲国产中v天仙www| 久久综合狠狠色综合伊人| 热re99久久精品国99热| 久久久久国产精品熟女影院| 久久精品午夜一区二区福利| 久久99精品久久只有精品| 久久精品国产99久久久| a级成人毛片久久|