在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处理csv数据的方法
Mar 11 Python
Linux中Python 环境软件包安装步骤
Mar 31 Python
浅谈Pandas 排序之后索引的问题
Jun 07 Python
django框架事务处理小结【ORM 事务及raw sql,customize sql 事务处理】
Jun 27 Python
python实现爬取百度图片的方法示例
Jul 06 Python
python实现广度优先搜索过程解析
Oct 19 Python
浅析Python3 pip换源问题
Jan 06 Python
python 子类调用父类的构造函数实例
Mar 12 Python
Python基于yield遍历多个可迭代对象
Mar 12 Python
简单了解django处理跨域请求最佳解决方案
Mar 25 Python
Python实现疫情地图可视化
Feb 05 Python
详解Python requests模块
Jun 21 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中批量修改文件后缀名的函数代码
2011/10/23 PHP
PHP empty函数报错解决办法
2014/03/06 PHP
使用php方法curl抓取AJAX异步内容思路分析及代码分享
2014/08/25 PHP
PHP二分查找算法示例【递归与非递归方法】
2016/09/29 PHP
PHP Primary script unknown 解决方法总结
2019/08/22 PHP
JavaScript二维数组实现的省市联动菜单
2014/05/08 Javascript
JavaScript中的console.trace()函数介绍
2014/12/29 Javascript
jQuery scrollFix滚动定位插件
2015/04/01 Javascript
jQuery实现鼠标滑向当前图片高亮显示并且其它图片变灰的方法
2015/07/27 Javascript
jQuery实现的超简单点赞效果实例分析
2015/12/31 Javascript
JavaScript 数组- Array的方法总结(推荐)
2016/07/21 Javascript
Javascript动画效果(3)
2016/10/11 Javascript
angular学习之从零搭建一个angular4.0项目
2017/07/10 Javascript
JS实现按钮控制计时开始和停止功能
2017/07/27 Javascript
jquery实现楼层滚动效果
2018/01/01 jQuery
vue项目中将element-ui table表格写成组件的实现代码
2019/06/12 Javascript
微信小程序弹窗禁止页面滚动的实现代码
2020/12/30 Javascript
[01:03:59]2018DOTA2亚洲邀请赛3月30日 小组赛B组VGJ.T VS Secret
2018/03/31 DOTA
pycharm 使用心得(七)一些实用功能介绍
2014/06/06 Python
Python延时操作实现方法示例
2018/08/14 Python
[原创]Python入门教程3. 列表基本操作【定义、运算、常用函数】
2018/10/30 Python
将pandas.dataframe的数据写入到文件中的方法
2018/12/07 Python
python 获取字典特定值对应的键的实现
2020/09/29 Python
HTML5+CSS3 诱人的实例:3D立方体旋转动画实例
2016/12/30 HTML / CSS
HTML5 canvas基本绘图之绘制阴影效果
2016/06/27 HTML / CSS
Shell编程面试题
2012/05/30 面试题
四年大学生活的个人自我评价
2013/12/11 职场文书
爱国主义教育活动总结
2014/05/07 职场文书
2014年党员学习“三严三实”思想汇报
2014/09/15 职场文书
大二学生自我检讨书
2014/10/23 职场文书
2016感恩父亲节主题广播稿
2015/12/18 职场文书
Mysql 用户权限管理实现
2021/05/25 MySQL
为什么MySQL分页用limit会越来越慢
2021/07/25 MySQL
MySQL利用UNION连接2个查询排序失效详解
2021/11/20 MySQL
基于Apache Hudi在Google云构建数据湖平台的思路详解
2022/04/07 Servers
动态规划之使用备忘录来改进Javascript函数
2022/04/07 Javascript