程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 更多關於編程 >> 在SAE上部署Python的Django框架的一些問題匯總

在SAE上部署Python的Django框架的一些問題匯總

編輯:更多關於編程

       這篇文章主要介紹了在SAE上部署Python的Django框架的一些問題匯總,SAE是新浪的一個在線APP部署平台,並且對Python應用提供相關支持,需要的朋友可以參考下

      花了些工夫將碎片網部署到了SAE,中途遇到各類問題。感覺SAE看上去很美,實際上卻並不是太成熟(至少python版如此)。

      下面記錄下我遇到的一些主要問題以及解決方法。

      django版本問題

      Django1.4都即將發布了,SAE平台自帶的SAE版本依舊為1.2x。為使用django1.3版本,你需上傳自己的django。具體做法可參考SAE手冊中的runtime.html#virtualenv

      日志模塊出錯

      最先遇到的是日至模塊的問題。錯誤顯示AdminEmailHandler中構造某個類時帶了is_mail這個參數,但目標類的構造函數根本就不支持。好在日至模塊不是必須。將日至處理模塊換成django.utils.log.NullHandler解決問題。

      ?

    1 'null': { 'level':'DEBUG', 'class':'django.utils.log.NullHandler', },

      local_thread問題

      在index.wsgi中加入

      ?

    1 2 3 import threading from django.utils import _threading_local threading.local = _threading_local.local

      settings文件

      SAE默認安裝了不少python包,其中包括django-userena。糟糕的是SAE將django-userena的demo項目也加到了python路徑,而且加載的優先級比項目代碼還高。直接導致os.environ[‘DJANGO_SETTINGS_MODULE'] = ‘settings'找到的是userena的settings文件。最終將settings文件改名為qnotes_settings.py解決該問題。

      其他問題

      昨天部署上線後經常出現數據庫錯誤,錯誤提示為Caught OperationalError while rendering: (1045, ‘access deny') 。SAE數據庫不支持長連接,30s後主動超時。但django本就會在每次請求後自動關閉數據庫連接,理論上不應當出現類似問題。該問題今天莫名其妙的自己好了。

      服務器非常不穩定,經常長時間的無法訪問,不定期的可以正常訪問。

      SAE可能hack了python的包加載機制的原因,SAE的python包的加載行為有些奇怪。本應當最先加載當前目錄下的包,實際上卻不一定。

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved