在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入门篇之函数
Oct 20 Python
python按照多个字符对字符串进行分割的方法
Mar 17 Python
Python解析json文件相关知识学习
Mar 01 Python
详谈Python基础之内置函数和递归
Jun 21 Python
使用Python更换外网IP的方法
Jul 09 Python
NumPy.npy与pandas DataFrame的实例讲解
Jul 09 Python
一百多行python代码实现抢票助手
Sep 25 Python
详解django自定义中间件处理
Nov 21 Python
浅析python3字符串格式化format()函数的简单用法
Dec 07 Python
python如何制作英文字典
Jun 25 Python
django ListView的使用 ListView中获取url中的参数值方式
Mar 27 Python
python中什么是面向对象
Jun 11 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读取ACCESS数据到MYSQL的代码
2011/05/11 PHP
深入掌握include_once与require_once的区别
2013/06/17 PHP
通过event对象的fromElement属性解决热区设置主实体的一个bug
2008/12/22 Javascript
保证JavaScript和Asp、Php等后端程序间传值编码统一
2009/04/17 Javascript
JQuery 自定义CircleAnimation,Animate方法学习笔记
2011/07/10 Javascript
Jquery工作常用实例 使用AJAX使网页进行异步更新
2011/07/26 Javascript
javascript文本框内输入文字倒计数的方法
2015/02/24 Javascript
javascript中使用正则表达式清理table样式的代码
2020/04/01 Javascript
Function.prototype.apply()与Function.prototype.call()小结
2016/04/27 Javascript
使用JavaScript实现弹出层效果的简单实例
2016/05/31 Javascript
浅谈jQuery双事件多重加载的问题
2016/10/05 Javascript
微信小程序中用WebStorm使用LESS
2017/03/08 Javascript
浅谈struts1 & jquery form 文件异步上传
2017/05/25 jQuery
原生JS实现多个小球碰撞反弹效果示例
2018/01/31 Javascript
详解React+Koa实现服务端渲染(SSR)
2018/05/23 Javascript
Vue 组件传值几种常用方法【总结】
2018/05/28 Javascript
浅谈Vue初学之props的驼峰命名
2018/07/19 Javascript
webpack 静态资源集中输出的方法示例
2018/11/09 Javascript
Vue搭建后台系统需要注意的问题
2019/11/08 Javascript
vue插槽slot的简单理解与用法实例分析
2020/03/14 Javascript
Python多线程编程(五):死锁的形成
2015/04/05 Python
举例讲解Python设计模式编程中对抽象工厂模式的运用
2016/03/02 Python
Python 搭建Web站点之Web服务器与Web框架
2016/11/06 Python
[原创]教女朋友学Python3(二)简单的输入输出及内置函数查看
2017/11/30 Python
Php多进程实现代码
2018/05/07 Python
在Python中实现shuffle给列表洗牌
2018/11/08 Python
Pytorch 抽取vgg各层并进行定制化处理的方法
2019/08/20 Python
使用Python脚本从文件读取数据代码实例
2020/01/19 Python
Lou & Grey美国官网:主打舒适性面料服饰
2017/12/21 全球购物
以下的初始化有什么区别
2013/12/16 面试题
MYSQL支持事务吗
2013/08/09 面试题
小学学校门卫岗位职责
2014/08/03 职场文书
春秋淹城导游词
2015/02/11 职场文书
幼儿园小班开学寄语
2015/05/27 职场文书
投诉信范文
2015/07/02 职场文书
Python爬取科目四考试题库的方法实现
2021/03/30 Python