国内精品综合久久久40p,久久久精品2019免费观看,国产精品99久久免费观看http://www.shnenglu.com/lambdacpp/category/6801.htmlfor_each(day.begin(),day.end(),bind2nd(Add(),me))zh-cnSat, 21 Mar 2009 22:41:31 GMTSat, 21 Mar 2009 22:41:31 GMT60Hatta Wiki試用http://www.shnenglu.com/lambdacpp/archive/2009/03/20/77329.html五點(diǎn)半五點(diǎn)半Fri, 20 Mar 2009 08:55:00 GMThttp://www.shnenglu.com/lambdacpp/archive/2009/03/20/77329.htmlhttp://www.shnenglu.com/lambdacpp/comments/77329.htmlhttp://www.shnenglu.com/lambdacpp/archive/2009/03/20/77329.html#Feedback0http://www.shnenglu.com/lambdacpp/comments/commentRss/77329.htmlhttp://www.shnenglu.com/lambdacpp/services/trackbacks/77329.html大輝推薦了一個(gè)網(wǎng)站www.wikimatrix.org。去看了看雖然一直用Wiki進(jìn)行一些文檔的協(xié)作,但那么多Wiki還是第一次哈。于是想找一個(gè)用Python開(kāi)發(fā)的wiki(wikimatrix上面有一個(gè)Wizard可以幫助您找到想要的)。除了老牌的plone,著名的MoinMoin,還發(fā)現(xiàn)了一個(gè)叫hatta的。安裝了一下,真還不錯(cuò)。
hatta的實(shí)現(xiàn)就一個(gè)python文件,功能簡(jiǎn)單,沒(méi)有權(quán)限管理,沒(méi)有用戶管理,作者認(rèn)為Wiki就是要?dú)g迎天南地北的兄弟都可以修改。hatta的使用簡(jiǎn)單,按照語(yǔ)法編輯,然后提交了事。中文化也非常簡(jiǎn)單,Wiki內(nèi)容本身就可以輸入中文,如果覺(jué)得頁(yè)面也應(yīng)該是中文的也很簡(jiǎn)單,改改po文件即可。我覺(jué)得如果您對(duì)Wiki的需求如下就可以考慮使用:
  1. 內(nèi)部使用。如果部署在外網(wǎng),好事者亂改一氣還是比較麻煩的,特別是放一些不該放的。
  2. 需要版本控制的文檔協(xié)作
  3. 要在文檔中嵌入程序代碼,代碼需要高亮
  4. 需要在文檔中嵌入數(shù)學(xué)公式。hatta使用latex語(yǔ)法輸入公式,生成的公式非常漂亮






五點(diǎn)半 2009-03-20 16:55 發(fā)表評(píng)論
]]>
Quixote筆記http://www.shnenglu.com/lambdacpp/archive/2008/04/19/47594.html五點(diǎn)半五點(diǎn)半Sat, 19 Apr 2008 07:11:00 GMThttp://www.shnenglu.com/lambdacpp/archive/2008/04/19/47594.htmlhttp://www.shnenglu.com/lambdacpp/comments/47594.htmlhttp://www.shnenglu.com/lambdacpp/archive/2008/04/19/47594.html#Feedback1http://www.shnenglu.com/lambdacpp/comments/commentRss/47594.htmlhttp://www.shnenglu.com/lambdacpp/services/trackbacks/47594.html又是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,文檔中稱為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è)模塊不在話下,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"



]]>
国内精品久久国产| 精品多毛少妇人妻AV免费久久| 日日狠狠久久偷偷色综合96蜜桃| 四虎久久影院| 婷婷久久久亚洲欧洲日产国码AV| 国产午夜精品理论片久久影视| 久久精品视频91| 日韩人妻无码精品久久久不卡| 91精品国产高清久久久久久国产嫩草 | 一本大道久久香蕉成人网| 亚洲精品乱码久久久久久蜜桃不卡| 久久99久久99精品免视看动漫| 久久精品国产只有精品66| 色综合久久中文字幕无码| 久久91精品久久91综合| 亚洲国产精品无码久久久久久曰| 久久精品国产99久久久| 无夜精品久久久久久| 99久久夜色精品国产网站| 午夜精品久久久久久毛片| 久久精品综合一区二区三区| 99久久国产热无码精品免费 | 久久久久久午夜成人影院 | 久久精品国产99国产精偷| 欧美黑人激情性久久| 久久伊人影视| 国产午夜精品理论片久久| 国产精品久久久久久久久鸭| 中文字幕无码免费久久| 色婷婷狠狠久久综合五月| 国内精品久久久久影院网站| 国产成人久久精品一区二区三区| 99久久国产综合精品女同图片| 色偷偷91久久综合噜噜噜噜| 日韩欧美亚洲国产精品字幕久久久 | 色噜噜狠狠先锋影音久久| 久久午夜伦鲁片免费无码| 日韩精品久久无码人妻中文字幕| 久久久久久午夜精品| 亚洲人成伊人成综合网久久久| 无码八A片人妻少妇久久|