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代码已经写好部署完毕了。但目前还不能正常工作,因为还需有数据库的支持。

results matching ""

    No results matching ""