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


Posted in Python onMay 30, 2015

花了些工夫将碎片网部署到了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 相关文章推荐
Python实现类继承实例
Jul 04 Python
10款最好的Web开发的 Python 框架
Mar 18 Python
python登录豆瓣并发帖的方法
Jul 08 Python
python模块之re正则表达式详解
Feb 03 Python
python执行使用shell命令方法分享
Nov 08 Python
Python切片操作实例分析
Mar 16 Python
Python比较配置文件的方法实例详解
Jun 06 Python
python实现ip地址查询经纬度定位详解
Aug 30 Python
关于pycharm中pip版本10.0无法使用的解决办法
Oct 10 Python
python GUI库图形界面开发之PyQt5工具栏控件QToolBar的详细使用方法与实例
Feb 28 Python
Python celery原理及运行流程解析
Jun 13 Python
keras读取训练好的模型参数并把参数赋值给其它模型详解
Jun 15 Python
python实现比较两段文本不同之处的方法
May 30 #Python
python统计文本文件内单词数量的方法
May 30 #Python
python使用win32com库播放mp3文件的方法
May 30 #Python
基于wxpython开发的简单gui计算器实例
May 30 #Python
python图像处理之镜像实现方法
May 30 #Python
python图像处理之反色实现方法
May 30 #Python
python中字典(Dictionary)用法实例详解
May 30 #Python
You might like
php zip文件解压类代码
2009/12/02 PHP
探讨捕获php错误信息方法的详解
2013/06/09 PHP
PHP 验证登陆类分享
2015/03/13 PHP
PHP计算指定日期所在周的开始和结束日期的方法
2015/03/24 PHP
php使用Jpgraph绘制饼状图的方法
2015/06/10 PHP
PHP不使用递归的无限级分类简单实例
2016/11/05 PHP
PHP数据库操作四:mongodb用法分析
2017/08/16 PHP
thinkphp5 框架结合plupload实现图片批量上传功能示例
2020/04/04 PHP
css把超出的部分显示为省略号的方法兼容火狐
2008/07/23 Javascript
jQuery与ExtJS之选择实例分析
2010/08/19 Javascript
线路分流自动智能跳转代码,自动选择最快镜像网站(js)
2011/10/31 Javascript
js获取字符串最后一位方法汇总
2014/11/13 Javascript
Jquery Ajax Error 调试错误的技巧
2015/11/20 Javascript
一款简单的jQuery图片标注效果附源码下载
2016/03/22 Javascript
详细谈谈javascript的对象
2016/07/31 Javascript
jQuery插件FusionCharts绘制2D柱状图和折线图的组合图效果示例【附demo源码】
2017/04/10 jQuery
11行JS代码制作二维码生成功能
2018/03/09 Javascript
jQuery实现炫丽的3d旋转星空效果
2018/07/04 jQuery
[01:13:01]2018DOTA2亚洲邀请赛 4.4 淘汰赛 TNC vs VG 第三场
2018/04/05 DOTA
Python多进程通信Queue、Pipe、Value、Array实例
2014/11/21 Python
python中随机函数random用法实例
2015/04/30 Python
浅谈Python中的可变对象和不可变对象
2017/07/07 Python
Python使用pickle模块存储数据报错解决示例代码
2018/01/26 Python
python读取和保存视频文件
2018/04/16 Python
python中如何使用insert函数
2020/01/09 Python
PyQt5高级界面控件之QTableWidget的具体使用方法
2020/02/23 Python
Python安装Bs4的多种方法
2020/11/28 Python
CSS3实现的文本3D效果附图
2014/09/03 HTML / CSS
教师试用期自我鉴定
2014/02/12 职场文书
新年主持词
2014/03/27 职场文书
《假如》教学反思
2014/04/17 职场文书
法定代表人身份证明书(含说明)
2014/10/02 职场文书
乡镇一岗双责责任书
2015/01/29 职场文书
2015年药店工作总结
2015/04/20 职场文书
行政答辩状范文
2015/05/21 职场文书
如何理解python接口自动化之logging日志模块
2021/06/15 Python