在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自定义类的数组排序实现代码
Aug 28 Python
python 容器总结整理
Apr 04 Python
详解Golang 与python中的字符串反转
Jul 21 Python
python实现Decorator模式实例代码
Feb 09 Python
在Mac下使用python实现简单的目录树展示方法
Nov 01 Python
Centos部署django服务nginx+uwsgi的方法
Jan 02 Python
selenium+python自动化测试环境搭建步骤
Jun 03 Python
使用selenium和pyquery爬取京东商品列表过程解析
Aug 15 Python
Python语法之精妙的十个知识点(装B语法)
Jan 18 Python
浅析PyCharm 的初始设置(知道)
Oct 12 Python
pytorch Dataset,DataLoader产生自定义的训练数据案例
Mar 03 Python
pytorch通过训练结果的复现设置随机种子
Jun 01 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
ajax返回值中有回车换行、空格的解决方法分享
2013/10/24 PHP
yii2中的rules 自定义验证规则详解
2016/04/19 PHP
PHP+Ajax 检测网络是否正常实例详解
2016/12/16 PHP
分析php://output和php://stdout的区别
2018/05/06 PHP
PHP面向对象程序设计继承用法简单示例
2018/12/28 PHP
php设计模式之工厂模式用法经典实例分析
2019/09/20 PHP
jQuery学习笔记之jQuery构建函数的7种方法
2014/06/03 Javascript
javascript实现阻止iOS APP中的链接打开Safari浏览器
2014/06/12 Javascript
JavaScript检测实例属性, 原型属性
2015/02/04 Javascript
简介JavaScript中setUTCSeconds()方法的使用
2015/06/12 Javascript
js实现选中复选框文字变色的方法
2015/08/14 Javascript
基于Jquery实现万圣节快乐特效
2015/11/01 Javascript
基于javascript实现九宫格大转盘效果
2020/05/28 Javascript
原生js实现日期计算器功能
2017/02/17 Javascript
使用vue和datatables进行表格的服务器端分页实例代码
2017/06/07 Javascript
AngularJs每天学习之总体介绍
2017/08/07 Javascript
基于Two.js实现星球环绕动画效果的示例
2017/11/06 Javascript
vue.js 双层嵌套for遍历的方法详解, 类似php foreach()
2018/09/07 Javascript
新手入门js闭包学习过程解析
2019/10/08 Javascript
python中ConfigParse模块的用法
2014/09/29 Python
Python爬虫_城市公交、地铁站点和线路数据采集实例
2018/01/10 Python
python2.7 json 转换日期的处理的示例
2018/03/07 Python
使用python进行拆分大文件的方法
2018/12/10 Python
Python利用神经网络解决非线性回归问题实例详解
2019/07/19 Python
Numpy之reshape()使用详解
2019/12/26 Python
python3代码中实现加法重载的实例
2020/12/03 Python
极简的HTML5模版
2015/07/09 HTML / CSS
Becextech新西兰:数码单反相机和手机在线商店
2018/04/27 全球购物
杭州SQL浙江浙大网新恩普软件有限公司
2013/07/27 面试题
外贸采购员岗位职责
2014/03/08 职场文书
行政专员岗位职责说明书
2014/09/01 职场文书
学籍证明模板
2015/06/18 职场文书
运动会闭幕式主持词
2015/07/01 职场文书
2016年社会管理综治宣传月活动总结
2016/03/16 职场文书
导游词之无锡华莱坞
2019/12/02 职场文书
Win11开始菜单添加休眠选项
2022/04/19 数码科技