在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实现基于两张图片生成圆角图标效果的方法
Mar 26 Python
在Python中用keys()方法返回字典键的教程
May 21 Python
Python的MongoDB模块PyMongo操作方法集锦
Jan 05 Python
Python基于回溯法子集树模板解决全排列问题示例
Sep 07 Python
django搭建项目配置环境和创建表过程详解
Jul 22 Python
如何在Cloud Studio上执行Python代码?
Aug 09 Python
使用python实现男神女神颜值打分系统(推荐)
Oct 31 Python
解决Python图形界面中设置尺寸的问题
Mar 05 Python
pycharm远程连接vagrant虚拟机中mariadb数据库
Jun 05 Python
为什么说python适合写爬虫
Jun 11 Python
Python 日期与时间转换的方法
Aug 01 Python
PyQt5 QDockWidget控件应用详解
Aug 12 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 Smarty模版简单使用方法
2016/03/30 PHP
PHP+Mysql分布式事务与解决方案深入理解
2021/02/27 PHP
PHP 判断字符串是中文还是英文, 或者是中英混合
2021/03/09 PHP
jQuery对Select的操作大集合(收藏)
2013/12/28 Javascript
jquery网页回到顶部效果(图标渐隐,自写)
2014/06/16 Javascript
jquery比较简洁的软键盘特效实现方法
2015/03/19 Javascript
微信小程序  checkbox组件详解及简单实例
2017/01/10 Javascript
jquery滚动条插件slimScroll使用方法
2017/02/09 Javascript
基于jQuery封装的分页组件
2017/06/26 jQuery
Vue中组件之间数据的传递的示例代码
2017/09/08 Javascript
微信小程序排坑指南详解
2018/05/23 Javascript
Vue引用Swiper4插件无法重写分页器样式的解决方法
2018/09/27 Javascript
JavaScript自动生成 年月范围 选择功能完整示例【基于jQuery插件】
2019/09/03 jQuery
微信小程序获取公众号文章列表及显示文章的示例代码
2020/03/10 Javascript
vue 实现超长文本截取,悬浮框提示
2020/07/29 Javascript
[43:48]Ti4正赛第一天 VG vs NEWBEE 2
2014/07/19 DOTA
[54:47]Liquid vs VP Supermajor决赛 BO 第五场 6.10
2018/07/05 DOTA
Django卸载之后重新安装的方法
2017/03/15 Python
Python连接phoenix的方法示例
2017/09/29 Python
Numpy 改变数组维度的几种方法小结
2018/08/02 Python
Python使用itcaht库实现微信自动收发消息功能
2020/07/13 Python
pymongo insert_many 批量插入的实例
2020/12/05 Python
美国知名的时尚购物网站:Anthropologie
2016/12/22 全球购物
丝芙兰波兰:Sephora.pl
2018/03/25 全球购物
三星英国官网:Samsung英国
2018/09/25 全球购物
婴儿鞋,独特的婴儿服装和配件:Zutano
2018/11/03 全球购物
LivingSocial英国:英国本地优惠
2019/02/22 全球购物
药品质量检测应届生求职信
2013/11/14 职场文书
马云的职业生涯规划之路
2014/01/01 职场文书
管事部库房保管员岗位职责
2014/02/21 职场文书
法人委托书范本
2014/09/15 职场文书
机关单位工作失职检讨书
2014/11/20 职场文书
以权谋私检举信范文
2015/03/02 职场文书
公司2015年终工作总结
2015/05/26 职场文书
早会开场白台词大全
2015/06/01 职场文书
VS2019连接MySQL数据库的过程及常见问题总结
2021/11/27 MySQL