在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不规范的日期字符串处理类
Jun 10 Python
wxpython中利用线程防止假死的实现方法
Aug 11 Python
Python新手在作用域方面经常容易碰到的问题
Apr 03 Python
粗略分析Python中的内存泄漏
Apr 23 Python
Python用模块pytz来转换时区
Aug 19 Python
PyCharm配置mongo插件的方法
Nov 30 Python
python http基本验证方法
Dec 26 Python
Win下PyInstaller 安装和使用教程
Dec 25 Python
python对一个数向上取整的实例方法
Jun 18 Python
使用pygame实现垃圾分类小游戏功能(已获校级二等奖)
Jul 23 Python
如何用python插入独创性声明
Mar 31 Python
python 使用tkinter与messagebox写界面和弹窗
Mar 20 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
Thinkphp中volist标签mod控制一定记录的换行BUG解决方法
2014/11/04 PHP
php利用云片网实现短信验证码功能的示例代码
2017/11/18 PHP
Centos7 Yum安装PHP7.2流程教程详解
2019/07/02 PHP
innerHTML,outerHTML,innerTEXT三者之间的区别
2007/01/28 Javascript
jquery实现带复选框的表格行选中删除时高亮显示
2013/08/01 Javascript
JQuery伸缩导航练习示例
2013/11/13 Javascript
JQuery结合CSS操作打印样式的方法
2013/12/24 Javascript
JS上传图片前实现图片预览效果的方法
2015/03/02 Javascript
jQuery中的ajax async同步和异步详解
2015/09/29 Javascript
浅析Javascript中bind()方法的使用与实现
2016/05/30 Javascript
Javascript表单特效之十大常用原理性样例代码大总结
2016/07/12 Javascript
vuejs在解析时出现闪烁的原因及防止闪烁的方法
2016/09/19 Javascript
JavaScript常用正则函数用法示例
2017/01/23 Javascript
chorme 浏览器记住密码后input黄色背景处理方法(两种)
2017/11/22 Javascript
bootstrap-table实现表头固定以及列固定的方法示例
2019/03/07 Javascript
微信小程序实现用table显示数据库反馈的多条数据功能示例
2019/05/07 Javascript
vue下axios拦截器token刷新机制的实例代码
2020/01/17 Javascript
Vue 事件的$event参数=事件的值案例
2021/01/29 Vue.js
python字典多条件排序方法实例
2014/06/30 Python
python中readline判断文件读取结束的方法
2014/11/08 Python
Python 使用SMTP发送邮件的代码小结
2016/09/21 Python
Python 实现数据库更新脚本的生成方法
2017/07/09 Python
python3去掉string中的标点符号方法
2019/01/22 Python
OpenCV+Python识别车牌和字符分割的实现
2019/01/31 Python
Django框架实现的普通登录案例【使用POST方法】
2019/05/15 Python
python 安装移动复制第三方库操作
2020/07/13 Python
M1芯片安装python3.9.1的实现
2021/02/02 Python
豆腐の盛田屋官网:日本自然派的豆乳面膜、肥皂、化妆水、乳液等
2016/10/08 全球购物
英国最大的在线奢侈手表零售商:Jura Watches
2018/01/29 全球购物
写出一个方法实现冒泡排序
2016/07/08 面试题
Shell编程面试题
2016/05/29 面试题
体育教育个人自荐信范文
2013/12/01 职场文书
读书小明星事迹材料
2014/05/03 职场文书
专升本学生毕业自我鉴定
2014/10/04 职场文书
用Python爬取各大高校并可视化帮弟弟选大学,弟弟直呼牛X
2021/06/11 Python
浅谈什么是SpringBoot异常处理自动配置的原理
2021/06/21 Java/Android