1 创建SAE应用
新浪云平台网址是http://www.sinacloud.com/sae.html 。
通过浏览器访问,首页如图1所示
图1
如果要新建自己的服务,需要通过新浪微博账号进行登录,如果没有微博账号可以注册一个。 用户登录后点击进入控制台,会显示平台应用的基本信息,界面如图2所示。
图2
在应用管理中创新建应用,输入相关信息,运行环境选择Python2.7的空应用,如图3所示。
图3
建立成功后将进入代码管理页面,如图4所示。请选择右边的SVN。代码管理模式选定好后就不能更改了。
图4
代码仓库选择完毕后会进入代码管理页面,如图5所示。
图5
此时新建的应用还没有部署过任何代码,需要创建一个版本。点击创建版本后,会提示你输入版本号,这时保持版本号为1,以后如果有改动可以再把版本号增大。
图6
在点击创建按钮后会要求验证安全码,输入你的登录密码即可。
图7
通过安全验证后就会看到已经有一个版本为1的应用条目了,给出了版本创建时间、链接等信息,并提供了编辑代码、上传代码包和删除的操作链接。
图8
点击“编辑代码”链接,进入编辑页面,双击左边文件列表中的 index.wsgi 文件,就可以在编辑器中编辑该文件的内容了。
图9
把index.wsgi内容替换为
# -*- coding: utf-8 -*-
import sae
import web
import json
urls = (
'/', 'Hello',
'/storeavalue', 'StoreAValue',
'/getvalue', 'GetValue'
)
class Hello:
def GET(self):
return "Its Webservice for TinyWebDB, please call it through storeavalue or getvalue"
class StoreAValue:
def GET(self):
return "ok"
def POST(self):
data = web.input()
aitag = data.tag
aivalue = data.value
db = web.database(
dbn='mysql',host=sae.const.MYSQL_HOST,
port=int(sae.const.MYSQL_PORT),
user=sae.const.MYSQL_USER,
pw=sae.const.MYSQL_PASS,
db=sae.const.MYSQL_DB,
charset='utf8')
results = db.select('test',where="tag='"+aitag+"'")
if len(results)==0:
db.insert('test',tag=aitag,value=aivalue)
else:
db.update('test',where="tag='"+aitag+"'",value=aivalue)
result = ["STORED",aitag,aivalue]
return json.dumps(result)
class GetValue:
def GET(self):
return "ok"
def POST(self):
data = web.input()
aitag = data.tag
db = web.database(
dbn='mysql',host=sae.const.MYSQL_HOST,
port=int(sae.const.MYSQL_PORT),
user=sae.const.MYSQL_USER,
pw=sae.const.MYSQL_PASS,
db=sae.const.MYSQL_DB,
charset='utf8')
results = db.select('test',where="tag='"+aitag+"'")
if len(results)==0:
aivalue-None
else:
for a in results:
aivalue=a.value
result = ["VALUE",aitag,aivalue]
return json.dumps(result)
app = web.application(urls, globals()).wsgifunc()
application = sae.create_wsgi_app(app)
替换后的代码编辑窗口如图10所示,点击全部保存,关闭编辑窗口即可。如何编写这些Python代码已经超出了本书的讲解范围,有兴趣的读者可以去查找Python程序设计的相关书籍和课程学习,在此不再详述。
图10
这时服务的Python代码已经写好部署完毕了。但目前还不能正常工作,因为还需有数据库的支持。