在新浪SAE上部署应用实战心得

阿里云部署serverless SAE实例 项目原因: 1、本身这两年serverless就比较火,一直有想学习的想法,但我比较懒哈哈哈所以一直没去太过关注。 2、因公司想节省服务器资源及拥抱云原生本身优势,所以需要对serverless进行调研并转型。 至于使用阿里云的原因,是因为这几年一直用的阿里云,并且目前所在公司的所有资源均在阿里云上。 调研了几天,把国内云的serverless各优势说明下。 阿里云:价格优惠 腾讯云:使用小程序开发比较方便 华为云:没找到啥优势 顺便说明,每个云厂商支持的se... 阅读详情

      最近几日学习了一下Bottle,这是一种用Python编写的轻量级的Web框架。类似的框架还有Flask,Tornado,Django,尽管后两者相对比较重量级。Bottle的文档简单清晰(http://bottlepy.org/docs/0.12/index.html),其中的“Todo-List Application”是一个很好的例子,在本机实现这个示例程序之后,我计划将其部署到真实的网站上,顺便也学习一下部署的过程(最后的成果见:http://simpletodo.applinzi.com/,很简陋,但主要是做为练手项目已经足够,Web框架的几个关键概念都练了一下)。


      选择新浪云应用SAE(
http://sae.sina.com.cn/)之后,发现实际的部署过程又是一个需要不断学习、思考、尝试、总结的艰辛过程。新浪的文档有些散乱,SAE本身也有不少坑,在此整理一下部署步骤和绕坑方法,供大家参考:


应注意避开的坑:
1、新浪SAE支持的Python版本是2.7,所以请提前调整好本地环境
2、数据库方面,SAE不支持python自带的sqlite3。可以考虑采用MySQL,并使用新浪SAE的数据库服务,详见
https://www.sinacloud.com/doc/sae/php/mysql.html
3、SAE中的Bottle采用的是0.9或更早版本,不支持route中的过滤器功能。所以对于正则表达式等请考虑使用老版本。(也有文档指出,可以升级SAE的依赖库的,PosPro没有做测试,列出来供参考:
http://simple-is-better.com/news/834
4、新浪SAE的本地开发环境sae-python-dev似乎在virtualenv下无法使用,可以考虑直接全局安装(此点不确定,也可能是我的配置存在问题)


调试和部署步骤
S1、在本地写好程序并调试通过

S2、参照SAE的要求(http://www.sinacloud.com/doc/sae/python/tutorial.html#hello-world),建立config.yaml文件,其实就两句:

name:应用名(应该与将来在SAE上建立应用的名称相同)
version: 1

S3、建立index.wsgi文件,针对不同的WEB框架(Bottle?Web.py? Flask ?),文档(http://www.sinacloud.com/doc/sae/python/tutorial.html#hello-world)中有不同要求。对于Bottle来说,核心也就两句话:

import sae
...
...
application = sae.create_wsgi_app(app)

S4、完成以上几步之后,你的程序就基本可以上线了,可以选择直接上传至SAE(具体方法见S6),实际测试功能。

(S5、建立本地测试环境进行测试,本步骤为可选步骤。)

(S5.1)、通过pip install sae-python-dev安装本地测试环境,建议全局安装而不是在virtualenv下安装。按照完成后,就可以通dev_server.py来对程序进行本地测试。(详见:http://www.sinacloud.com/doc/sae/python/tools.html#ben-di-kai-fa-huan-jing
(S5.2)如果使用MySQL,还需要安装MySQLdb(以便import MySQLdb)。在Windows环境下,可以下载MySQL-python(
https://pypi.python.org/pypi/MySQL-python/1.2.5
(S5.3)如果想在本地真正完成包括数据库读写方面的测试,还得安装MySQL主程序。在这里要注意由于MySQLdb兼容性的问题,MySQL只能选择MySQL-3.23~5.5(地址:
http://dev.mysql.com/downloads/mysql/5.5.html#downloads
(注:如果按照S5.3步骤在本地按照MySQL数据库,其数据库命名恐怕也要按照SAE的规定,本人未做此步,写出来仅供参考。其实,如果不觉得反复上传是一种麻烦的话,S5步骤都可以省略。直接上传SAE之后,也是可以测试和分析的。最后需要说明的是SAE自己也在文档中指出,本地开发环境的功能并不完善。)


S6 向SAE上传程序,具体步骤可参考(http://www.sinacloud.com/doc/sae/python/tutorial.html#hello-world),也可按照我下面梳理的步骤来:

S6.1 如果你的机器上没有安装过git程序的话,先安装一个(PosPro用的是Git-2.7.0-32-bit)

S6.2 学习git的基本使用,一个比较详细的教程(http://blog.jobbole.com/78960/),比较关键的几个命令列举如下:

git init —— 把当前目录设置成git管理的仓库
git add XXX(文件名)——把文件添加到暂存区里面去 
git add . ——把当前目录的所有文件都添加进去
git remote add sae https://git.sinacloud.com/应用地址——连接SAE上的具体应用
git commit——把文件提交到仓库
git push master:数字(版本号)——上传某一版本的数据
git pull sae :Version —— 下载数据
避免每次push都输入密码的繁琐,可以在执行push之后加一句:
git config --global credential.helper wincred
详细参见
https://help.github.com/articles/caching-your-github-password-in-git/

S6.3 利用Git向SAE上传数据, 详细参见http://www.sinacloud.com/doc/sae/tutorial/code-deploy.html#git

S7 在SAE上建立配套数据库

S7.1 针对具体应用,进入“管理应用”页面,在页面左侧的导航栏中,找到“数据库服务——共享型MySQL”,在这里就可以管理和创建自己的MySQL数据库表了

S7.2 SAE提供的这个管理界面虽然简陋,但还是比较方便的,可以选择自己建表,也可以导入数据,详见文档(http://www.sinacloud.com/doc/sae/services/mysql.html

S7.3 如果您和我一样计划用MySQLdb来做连接的话,下面的例子可供参考:

##下面是SAE对数据库变量的定义
	#sae.const.MYSQL_DB      # 数据库名
	#sae.const.MYSQL_USER    # 用户名
	#sae.const.MYSQL_PASS    # 密码
	#sae.const.MYSQL_HOST    # 主库域名(可读写)
	#sae.const.MYSQL_PORT    # 端口,类型为<type 'str'>,请根据框架要求自行转换为int
	#sae.const.MYSQL_HOST_S  # 从库域名(只读)

##利用MySQLdb连接的实例
	import MySQLdb
	db = MySQLdb.connect(port=int(sae.const.MYSQL_PORT), host=sae.const.MYSQL_HOST, db=sae.const.MYSQL_DB, user=sae.const.MYSQL_USER, passwd=sae.const.MYSQL_PASS)

S8 反复测试吧


      PosPro最后的成果见:http://simpletodo.applinzi.com/,很简陋,但主要是做为练手项目已经足够,Web框架的几个关键概念都练了一下。

(不好意思,近日才发现,原来即使是保持应用运行,也是需要消耗新浪云豆的,目前云豆耗尽,以上网站以不可用。见谅。不过,部署方法不会失效,^_^,大家仍可参考!)




新浪SAE 部署 flask程序详解 打包方式上传代码部署 新浪云有三种部署方式,git    svn  和代码压缩上传。因为我git和svn不怎么会用,所以最终使用了直接网页上传压缩包的代码方式。 以下为部署方式。 1.   申请新浪云账号,然后身份证验证, 选择控制台,云应用SAE。创建新应用。 2 ,申请网址之后,进入上传代码页面 3.  进入到了管理网页页面, 开始尝试 阅读详情

相关推荐

利用新浪SAE搭建可访问的免费个人网站

本文介绍基于PAAS品台的个人网站的搭建,免费搭建自己的网站,欢迎大家一起交流

我是山寨南侠 1万+

SaeServer-v2.0(SAE本地开发环境)--图片教程

SaeServer2.0发布。新版具有操作界面。SaeServer既能作为SAE本地开发环境也能作为普通运行环境。有SAE开关,关闭SAE后可作为普通环境。自带许多常用工具如phpmyadmin、xdebug、pear、memcache、mongodb、sqlite等。欢迎大家测试。微盘下载:http://t.cn/zOQxjAg

新浪SAE部署详细图解教程

图解新浪SAE部署

w-ind'的博客 1万+

Serverless应用引擎SAE评测|一分钟部署在线游戏

简要介绍Serverless应用引擎SAE以及一分钟部署在线游戏的操作过程

csdn565973850的博客 1273

sae-python相关工具

相关工具 代码部署 SAE Python使用SVN作为部署工具。使用SVN部署代码到SAE需要遵循以下规则: SVN根目录下只允许存在以正整数命名的目录,不允许有文件存在, 这些目录为应用的版本目录,每个版本目录下才可以放应用对应版本的代码。 以应用longtalk为例,这个应用有6个版本: jaime@westeros:~/longtalk$ ls 1 2 3 4

june_fiend的专栏 1155

SAE部署Python-让云端自动运行Python代码

之前写过模拟登录新浪微博的帖子,然而我并没有去爬过微博的数据,觉得有点浪费,于是就想写一个代码来发微博。写完之后觉得如果能自动发微博就好了,但是我又不可能24小时开始(晚上12点后还会断网),也没有vps(穷学生狗),找过几个免费vps未果,然后想到之前用过新浪SAE,就想能不能在上面试试。 试了一天左右终于让我试出来了!! 基本实现了: 1、定时发送,这里是定时半小时 2、离线自动,基

小样的博客 9443

PHP 新浪微博开放平台 新浪云平台 SAE 开发微博应用 建立微博应用的过程

PHP 新浪微博开放平台 新浪云平台 SAE 开发微博应用 建立微博应用的过程

hgdfguj的博客 342

PHP+新浪微博开放平台+新浪云平台(SAE

PHP+新浪微博开放平台+新浪云平台(SAE)方案的基础 一、新浪微博开放平台( http://open.weibo.com/wiki/index.php/Quickstart)           开放的是什么:开放平台开放给开发者的是每一个用户的用户关系,开发者不在向传统应用那样面对单个开发者而是面对用户身后的整个好友圈。每一个API都是围绕好友与好友之间的交流来提供相关的

明镜止水的博客 860

PHP+新浪微博开放平台+新浪云平台(SAE)开发微博应用基础

PHP+新浪微博开放平台+新浪云平台(SAE)开发微博应用基础

hgdfguj的博客 614

PHP 新浪微博开放平台 新浪云平台 SAE 开发微博应用 PHP SDK中Demo程序简析

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PHP+新浪微博开放平

hgdfguj的博客 602

开发微信公众平台--新建新浪sae部署服务器

创建新浪云计算应用 申请账号 我们使用SAE新浪云计算平台作为服务器资源,并且申请PHP环境+MySQL数据库作为程序运行环境。 申请地址:百度搜sae ,使用新浪微博账号可以直接登录SAE,登录后SAE将赠送500个免费云豆。认证开发者送2000豆 够用很久的了     创建新应用 http://www.cnblogs.com/txw1958/p/wechat-tutorial.h

mozhenhau的IT编程学习 4929

PHP+新浪微博开放平台+新浪云平台(SAE)开发微博应用——建立微博应用的过程

PHP+新浪微博开放平台+新浪云平台(SAE) ——新浪微博应用开发的一个解决方案 一、PHP+新浪微博开放平台+新浪云平台(SAE)方案的基础 二、建立微博应用的过程 三、PHP SDK中Demo程序简析 四、进一步学习的走向和有用的资源 五、必须交待的几个问题 【PDF全文下载】 建立微博应用的过程 1、在微博开放平台上创建应用

迂者-贺利坚的专栏 1万+

新浪云python示例_新浪SAE部署python项目

SAE实际上就是个多节点的虚拟主机,跟云主机差不多,只不过SAE的节点比一般的云主机要多,把网站程序布署在SAE上比自己用独立的服务器稳定性和性能要高很多。将自己用python开发的博客项目放在SAE上。方法/步骤1首先我们点开百度搜索“新浪SAE”,因为这需要你的微博账号进行登陆的,所以你先要去注册微博账号,这里就不演示了。2使用微博账号进行登陆之后,我们可以看到新浪云的主页.在主页上选择控制台...

weixin_39634508的博客 196

PHP+新浪微博开放平台+新浪云平台(SAE)开发微博应用——必须交待的几个问题

PHP+新浪微博开放平台+新浪云平台(SAE) ——新浪微博应用开发的一个解决方案 一、PHP+新浪微博开放平台+新浪云平台(SAE)方案的基础 二、建立微博应用的过程 三、PHP SDK中Demo程序简析 四、进一步学习的走向和有用的资源 五、必须交待的几个问题 【PDF全文下载】 必须交待的几个问题   这是一组不严肃的文章,主要因为:

迂者-贺利坚的专栏 5790

使用百度BAE和新浪SAE部署web项目

使用百度BAE和新浪SAE部署web项目一、百度BAE部署项目的步骤: 注册或者登录百度账号:https://login.bce.baidu.com/ 账号最好实名认证和绑定手机、安全邮箱、设置复杂的密码为好,以便安全性高。 添加部署: 选择【BAE基础版】–>【添加部署】: 然后,【去支付】即可。 部署列表查看部署: 4.查看消费记录:

自由自在的飞翔的专栏 1790

新浪sae部署php,如何在新浪SAE 上安装部署 Laravel 5.1 应用并测试数据库连接...

如何在新浪SAE 上安装部署 Laravel 5.1 应用并测试数据库连接由 学院君 创建于5年前, 最后更新于 7个月前版本号 #211830 views7 likes0 collects1、创建SAE应用点击“创建新应用”,在创建应用页面填写表单,开发语言选择PHP 5.6,选中“空应用”,然后点击“创建应用”:这样在管理应用列表新增了一个“Laravel SAE应用:接下来我们点击“L...

weixin_28729843的博客 396

新浪SAE用Git方式部署Python3.7Flask服务

Python3的Flask,可以用Git方式部署新浪SAE中,大体的流程是,新浪云应用SAE创建一个新的应用,拿到Git的URL、用户名和密码,在Pycharm中写入Git的用户名和密码,再写好相应的Python文件,commit无误后,Push即可传入云端。好处是,本地可以正常编辑、测试,最低每小时3分钱,一年大概260.而且不用的时候,删除应用,用的时候再Push即可。只有100M代码空间...

limaning的专栏 608
上一篇: 用Python实现古诗词填字游戏(三)
下一篇: 关于matplotlib在windows下的安装
PosPro
博客等级 码龄11年 28粉丝 26原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值