亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 4373 | 回復(fù): 1
打印 上一主題 下一主題

分享: webpy框架的todo list連接不同數(shù)據(jù)庫的小例子 [復(fù)制鏈接]

論壇徽章:
1
數(shù)據(jù)庫技術(shù)版塊每日發(fā)帖之星
日期:2015-06-20 22:20:00
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2013-02-06 10:38 |只看該作者 |倒序?yàn)g覽
根據(jù)web.py官網(wǎng)上的todo list的例子,進(jìn)行實(shí)際測(cè)試,并嘗試使用不同的數(shù)據(jù)庫,在這里與大家分享。


apache+wsgi主要是考慮到以后到生產(chǎn)環(huán)境中,使用oracle數(shù)據(jù)庫是不大喜歡java,一直想用python的訪存oracle數(shù)據(jù)庫。

web.py學(xué)習(xí)的資料相對(duì)太少,前后折騰了20來天(工作空隙),才算上手,整個(gè)過程很艱難,一句一句注釋掉,步步為營(yíng),查錯(cuò),找原因。
主要就是apache+wsgi環(huán)境中,出錯(cuò)信息太少,找不到原因,后來熱心的thinkc給出了查看apache日志的方法,查找出錯(cuò)原因,進(jìn)度大大加快。


困擾的問題有:
  1. webpy連接遠(yuǎn)程數(shù)據(jù)庫的問題,
    解決方法是增加host參數(shù),如下:
    db = web.database(dbn='postgres', db='postgres', user='postgres', pw='123456',host="127.0.0.1")
    只是對(duì)mysql,pgsql有效,在oracle就不行。需要這樣來寫。
    db = web.database(dbn='oracle', db='127.0.0.1/ORCL', user='system', pw='Mz123456')

  2.oracle和pgsql數(shù)據(jù)庫,字段名大小寫的問題。
    一樣的create table todo (id...,title...),在webpy的程序中,oracle字段名不知為什么只能用大寫,
    用小寫會(huì)出錯(cuò),提示id或title字段找不到,必須是ID,TITLE字段。需要修改模板index.html和model.py
    在使用pgsql數(shù)據(jù)庫時(shí),又出現(xiàn)相反的情況。不能用大寫,要小寫,改回來吧。奇了怪了!

  3.字符集問題
    亂碼問題一直讓我很恐懼,不幸的事,它總是如影隨形。
    解決辦法:
    (1).加入下面三行
      import sys
      reload(sys)
      sys.setdefaultencoding('utf-8')
    這三條,按網(wǎng)友的提示,解決編碼轉(zhuǎn)換的問題。

    (2).在base.html模板文件中,加入
     <META http-equiv=Content-Type content="text/html; charset=utf-8">
    指令頁面編碼

    (3).但oracle數(shù)據(jù)庫中讀出的記錄仍然是一個(gè)?號(hào),是亂碼,根據(jù)以前寫mod_python的經(jīng)驗(yàn),加入兩條,
       import os
       os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'

   4.雜七雜八的路徑問題
      python code.py  http://127.0.0.1:8080 正常,
      到了apache+wsgi中,出現(xiàn)文件,模塊找不到的問題。
      添加下面一行,解決
      sys.path.append('D:/wwwroot/webpy')


    python code.py 啟動(dòng)web服務(wù),http://127.0.0.1:8080  中,可以顯示出錯(cuò)的信息。

    apache+wsgi環(huán)境中,瀏覽器中,則出錯(cuò)的信息太少,查錯(cuò)需要打開error.log日志。  

web.py官網(wǎng)給出了很多例子,非常好,但實(shí)際一試,才會(huì)發(fā)現(xiàn),并不是拿來就可以用,需要讀懂程序,需要有查錯(cuò)的本事。
走過了艱難的一段過程,希望后來的朋友少走彎路,在這里與大家分享一點(diǎn)小經(jīng)驗(yàn),祝大家新年快樂。

   



文件列表:

    ware\cx_Oracle-5.1.2-10g.win32-py2.7.msi   
        \cx_Oracle-5.1.2-11g.win32-py2.7.msi
        \mod_wsgi-win32-ap22py27-3.3.so
        \psycopg2-2.4.5.win32-py2.7-pg9.1.3-release

    兩個(gè)todo list的例子:
    webpy-todolist-oracle.zip
    webpy-todolist-pgsql.zip


python 選擇的是2.7.2版
cx_Oracle提供了兩個(gè),一個(gè)是針對(duì)oracle 10g,一個(gè)針對(duì)的11g。
psycopg2與之配對(duì)的是postgresql數(shù)據(jù)庫,9.1以上版本。python 2.7版。


Apache2.2和Postgresql 9.2自己下載安裝。

安裝好cx_Oracle以后,還需要下載安裝instantclient-basic。
Linux環(huán)境可以下載rpm包進(jìn)行安裝。
windows環(huán)境解壓后,復(fù)制到C:\Python27\Lib\site-packages即可。



關(guān)于webpy應(yīng)用的使用環(huán)境:

   比如,在windows環(huán)境下,d:\wwwroot\webpy作為根目錄。

   可以用命令行 cmd, 然后切換到d盤,用cd命令進(jìn)入到webpy目錄。

   然后python code.py

   通常 http://127.0.0.1:8080即可使用。


   使用apache+wsgi的話,將mod_wsgi.so(改名后)復(fù)制到apache的module目錄,

然后,在httpd.conf配置文件最下面添加幾行。


#以下為webpy添加的內(nèi)容

LoadModule wsgi_module modules/mod_wsgi.so

WSGIScriptAlias  /            "D:/wwwroot/webpy/code.py"
Alias            /static      "D:/wwwroot/webpy/static/"
AddType          text/html    .py

<Directory "D:/wwwroot/webpy">
      Order deny,allow
      Allow from all
</Directory>

然后,重新啟動(dòng)apache服務(wù),即可 http://127.0.0.1 使用。

兩個(gè)例子中,有sql文件,可以用數(shù)據(jù)庫終端軟件運(yùn)行,初始化建立todo這張表。


使用過程:
    1.安裝apache
    2.python
    3.安裝數(shù)據(jù)庫 pgsql,oracle
    4.安裝pscopg
    5.cx_Oracle
    6.instantclient-basic,
    7.安裝webpy   python setup.py insall
    8.配置apache的 httpd.conf文件
    9.初始化數(shù)據(jù)庫
    10.打開瀏覽器使用

這兩個(gè)例子可以逐個(gè)試驗(yàn),code.py文件位于d:\wwwroot\webpy目錄中。

如果在其它目錄,需要修改程序中的這一行:
  sys.path.append('D:/wwwroot/webpy')
還需要修改apache的httpd.conf配置。


再次祝大家新年快樂!

完整的例子及相關(guān)軟件:
webpy-todolist-eg2.zip (1.14 MB, 下載次數(shù): 40)



           

論壇徽章:
1
數(shù)據(jù)庫技術(shù)版塊每日發(fā)帖之星
日期:2015-06-20 22:20:00
2 [報(bào)告]
發(fā)表于 2013-02-06 10:42 |只看該作者
補(bǔ)充一下,上面的例子中,oracle數(shù)據(jù)庫安裝時(shí)候,默認(rèn)編碼是utf8。
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP