博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SAE的Tornado开发经验
阅读量:5924 次
发布时间:2019-06-19

本文共 1033 字,大约阅读时间需要 3 分钟。

对程序员来说,新浪云SAE无疑是国内最好的PaaS平台,实名认证和绑定移动端得到的免费云豆,可以让你在做出一款能抬起头的应用之前不愁吃喝。

所以这一年里做过的网站和应用,第一个版本都是起于SAE。
对于Python的网络框架,小2原本专攻大路货Django,工作中被一高手点醒后,开始迷醉于Tornado的快。对,并不是非阻塞的快,而且开发的快,极适合做前后端分离、以JSON传递数据的模式。
人老怕忘,随手记记Tornado在SAE上的坑。

ORM的选择

sqlalchemy既不简洁又缺乏一致性,但建表、重连、SQL包装、连接池这些dirty job总得有人做。sqlalchemy的使用必须注意以下问题:

连接的创建和关闭

因为SAE的MySQL超时时间设置得很短(10秒左右),因此在网络连接关闭的时候必须同时关闭数据库连接。最好的办法是都继承一个BaseHandler。

pythonclass BaseHandler(tornado.web.RequestHandler):    def initialize(self):        self.session = DB_Session()    def on_finish(self):        self.session.close()

缩短重连时间

因为超时时间比MySQL的通用配置要短,所以sqlalchemy的重连时间也必须同步,否则会报「MySQL has gone away」的2006数据库错误。我的配置仅供参考:

pythonengine = create_engine(db_config, pool_recycle=5, poolclass=NullPool)

secure_cookie

一般都会选择Tornado的secure_cookie作为账号的惟一凭证,上线必须找一个不改变(重新部署后之前的cookie不失效)也不容易让外人得知的字符串做密钥。我应用的secret_key:

pythoncookie_secret = 'test' if debug else sae.const.SECRET_KEY

日志

SAE的logging默认级别是warning,所以logging.info('')是不会生效的,最好在入口处设置:

pythonlogging.basicConfig(level=logging.INFO)

余不一一,GitHub传送门:。

来自:

转载地址:http://euovx.baihongyu.com/

你可能感兴趣的文章
vue实现todo功能(一):搭建vue-webpack环境
查看>>
美链BEC合约漏洞技术分析
查看>>
Spring 入门学习二之IOC
查看>>
yii1.0性能调优之改善并发数
查看>>
关于JAVA异常处理的20个最佳实践
查看>>
JS基础入门篇( 一 )
查看>>
Mybatis之设计模式之装饰者模式
查看>>
getComputedStyle方法的那些事
查看>>
Vim的NerdTree插件
查看>>
Docker学习笔记
查看>>
深度挖掘 Laravel 生命周期
查看>>
你和阿里资深架构师之间,差的不仅仅是年龄(进阶必看)
查看>>
Spring Data REST API集成Springfox、Swagger
查看>>
vue+vuecli+webapck2实现多页面应用
查看>>
CSS布局解决方案(终结版)
查看>>
RabbitMQ+PHP 教程六(RPC)
查看>>
用Vue搭建一个应用盒子(二):datetime-picker
查看>>
vue vue-router vuex element-ui axios 写一个代理平台的学习笔记(十一)构思商品页面...
查看>>
jsonp-反向代理-CORS解决JS跨域问题的个人总结
查看>>
Educational Codeforces Round 37 (Rated for Div. 2)
查看>>