在SAE上部署Python的Django框架的一些问题汇总

 更新时间:2015年05月30日 16:29:13   投稿:goldensun  
这篇文章主要介绍了在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解决问题。

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

local_thread问题

在index.wsgi中加入

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包的加载行为有些奇怪。本应当最先加载当前目录下的包,实际上却不一定。

相关文章

  • python加密解密库cryptography使用openSSL生成的密匙加密解密

    python加密解密库cryptography使用openSSL生成的密匙加密解密

    这篇文章主要介绍了python加密解密库cryptography使用openSSL生成的密匙加密解密,需要的朋友可以参考下
    2020-02-02
  • Python中对象的引用与复制的使用

    Python中对象的引用与复制的使用

    引用和复制是Python处理对象的重要概念,本文主要介绍了Python中对象的引用与复制的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-12-12
  • python实现文件批量重命名

    python实现文件批量重命名

    这篇文章主要为大家详细介绍了python实现文件批量重命名,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-04-04
  • Python中type的构造函数参数含义说明

    Python中type的构造函数参数含义说明

    这篇文章主要介绍了Python中type的构造函数参数含义说明,本文用一个编码实例解释Python type的参数的作用和含义,需要的朋友可以参考下
    2015-06-06
  • 五种Python转义表示法

    五种Python转义表示法

    这篇文章主要介绍了五种Python转义表示法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • python文件处理fileinput使用方法详解

    python文件处理fileinput使用方法详解

    这篇文章主要介绍了python文件处理fileinput使用方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01
  • 把pandas转换int型为str型的方法

    把pandas转换int型为str型的方法

    今天小编就为大家分享一篇把pandas转换int型为str型的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • 教你用 Python 实现微信跳一跳(Mac+iOS版)

    教你用 Python 实现微信跳一跳(Mac+iOS版)

    这几天看网上好多微信跳一跳破解了,不过都是安卓的,无奈苹果不是开源也没办法。本文给大家分享用 Python 来玩微信跳一跳(Mac+iOS版),具体实现代码大家参考下本文
    2018-01-01
  • Windows上使用Python增加或删除权限的方法

    Windows上使用Python增加或删除权限的方法

    下面小编就为大家分享一篇Windows上使用Python增加或删除权限的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • Python使用日志模块快速调试代码并记录异常信息

    Python使用日志模块快速调试代码并记录异常信息

    本文详细介绍了Python logging日志模块的使用方法,包括如何在代码中使用logging记录调试信息、如何设置日志级别、如何记录异常信息等。通过本文的指南,读者可以快速学会如何使用logging模块进行调试,并保留有用的日志信息,便于后续排查问题和优化代码
    2023-04-04

最新评论