免费云空间/VPS AppFog申请及Python Web应用开发与上传实战

来源:互联网 发布:淘宝三阶魔方 编辑:程序博客网 时间:2024/03/29 05:11

转载请在头部保留此信息:本文由jmppok于2014.1.22日发表于http://blog.csdn.net/jmppok/article/details/18659547 

欢迎转载,但请勿用于商业用途。 联系方式:jmppok@gmail.com


目前网络上有很多提供云存储、云空间、VPS的厂商,从功能、稳定性、易用性、人气等方面考虑,作者认为AppFog是一个不错的选择,而且他还是免费的。最重要的是,应用可以完全自给开发,想做什么就做什么.本文对AppFog空间的申请过程、应用创建与开发、部署等方面对其进行实战说明。

1.AppFog简介

AppFog是一个基于Cloud Foundry的PaaS平台,类似Google APP Engine和Heroku。最底层是基于AWS, RackSpace,HP OpenStack, MS Azure这样的IaaS平台,中间层使用Cloud Foundry,最上层是AppFog。其实我们可简单的认为appfog提高云空间或者云计算服务,并且重要的是appfog还提供一个免费服务。
AppFog以内存分配作为主要的定价规则,无缝切换IaaS平台,无需关心配置问题,专心Code,就是所谓的“Work on code, not management.”AppFog还提供了iphone App用来监控你的Web应用,同时由于是基于Cloud Foundry 所以可以同样适用很多第三方开源工具。

AppFog支持Java, Java Grails, Java Spring Mysql,Node,Node Chat, Node Express,PHP, PHP Drupal, PHP WordPress,Python, Python Django, Python Flask,Ruby onRails, Ruby Sinatra等编程语言。


2.空间申请

AppFog目前需要发邮件进行申请,具体步骤如下:

1)登陆官方网站https://console.appfog.com/login,选择“Sign Up”,或者猛戳这里Sign Up;

2)打开的页面上并不能直接注册

AppFog Signups

We are enhancing our automated sign-up process. Please contact support@appfog.com for an account request.

就是说需要你发送一个邮件到support@appfog.com;

3)很高级的赶脚,那就发邮件吧

猛戳这里support@appfog.com,会自动打开outlook之类的邮件客户端,里面有邮件模板:

收件人,主题就不必说了,内容需要自己填下,下面给出一个例子:

Name = Bert LeeCompany = lenovoLocation = chinaInterest in AppFog = Every technology. Every infrastructure.
你也可以直接写一封Email,复制收件人,主题和上面内容,发送。


4)再次确认

发送邮件后等几个小时,你就会受到一封确认邮件:

然后回复一封邮件,回答这三个问题:

第一个是你想要注册的账号(邮箱地址),下面两个随意。

1. Please type out the email address you wish to use for the account here --> jmppok@gmail.com2. Please tell us what Code (programming) Languages (NOT the language you speak) you plan to use in your application(s):Java & Python3. Please tell us the purpose of the application(s):Home Page & Blog

5)申请成功

发送邮件后再等几个小时,就会收到申请成功的邮件:

里面有你的账号和密码。同时还提醒你需要进行一些后续操作。

6)最后的激活步骤

根据邮件提示,进行最后的激活

1.登陆

2.完善个人信息

3.进行邮箱认证,会发送邮件到你的邮箱,复制里面的认证码进行认证。

4.修改密码

到这里恭喜你AppFog注册成功啦!

3.创建应用

登陆到AppFog,直接进入管理界面:

New App直接创建一个新的App。

创建App有三个步骤:

1)选择App类型

有16种应用类型可以选择,我选择了Python 2.7.3,完全图简单。你可以根据需要选。


2)选择服务器

共有4处服务器可以选择,中国选第一个“东南亚”就可以,会快一些。


3)填写应用名称

如jmppok,确认。


我已经创建过该应用了,所以提示不合法。需要一个没有被使用的名字。


4)应用管理与测试

经过上面三个步骤,已经成功创建了一个Python应用。

回到管理界面,就可以在应用列表里看到。


单击列表里的应用,如jmppok,可以管理该应用。


可以启动,关闭,重启。

最重要的右上角两个按钮:Vist Live Site(测试网站)和 Download Source Code(下载源码到本地)

选择Vist Live Site可以打开你创建的Web应用进行测试。

Download Source Code可以下载应用的源代码到本地进行修改编辑,很爽吧!


4.自定义应用

1)首先点击上面的 Download Source Code下载应用代码到本地。

是一个以应用名称命名的zip包。

由于我创建的是最简单的Python应用,压缩包里只有最简单的两个文件:

requirements.txt (没用,里面就一个bottle)

wsgi.py(一个简单的Python Web应用)

import bottleimport osdef application(environ, start_response):    data = "Hello World! AppFog Python Support"    start_response("200 OK", [            ("Content-Type", "text/plain"),            ("Content-Length", str(len(data)))            ])    return iter([data])


2)自定义应用

其实就是修改wsgi.py就可以啦。

源代码中建议用bottle,关于Python使用bottle和wsgi开发web应用大家可以baidu之,很简单的说。

下面是一个作者修改后的Web应用代码。可以注册一个key-value,然后查找之。可以list所有的key-value。最多支持100个。

#!/usr/bin/python# -*- coding: utf-8 -*-import bottlefrom  bottle import *import osdata_map={}application = bottle.default_app()@route('/')def index():return "Hello! \nAppFog Python Support"@route('/list')def ls_all():global data_mapdata_str = ""for k,v in data_map.items():data_str += "<tr><td>%s</td><td>%s</td></tr>" %(k,v)return "<table border='1'> <tr><th>key</th><th>value</th></tr>"+data_str+"</table>"@route('/regist')def regist():    return '''        <form action="/regist" method="post">            Key: <input name="key" type="text" />            Value: <input name="value" type="text" />            <input value="regist" type="submit" />        </form>    '''@route('/regist', method='POST')def do_regist():    k = request.forms.get('key')    v = request.forms.get('value')    global data_map    if (len(data_map.keys())<101):    data_map[k]=v    return """    <script language="javascript">      alert("Regist success!");              top.location='/list';    </script>    """    else:return """    <script language="javascript">      alert("Regist failed! \nOnly 100 keys can be registed!\n You can delete some keys to continue regist.");      top.location='/list';    </script>    """@route('/get/<name>')def get_val_of_key(name):    global data_map    if(name in data_map.keys()):        return "<P>key=%s</P><P>value=%s</P>" %(name,data_map[name])    else:        return "<P>Can't find key=%s.</P>" %(name)@route('/del/<name>')def del_key(name):    global data_map    if(name in data_map.keys()):        del data_map[name]    return """    <script language="javascript">      top.location='/list';    </script>    """if __name__ == '__main__':    from wsgiref.simple_server import make_server    srv = make_server('localhost', 8088, application)    srv.serve_forever()
需要bottle.py支持。关于bottle.py可以到bottle网站进行下载,或者猛戳这里bottle.py

注意一定要在本地运行 wsgi.py进行测试,OK以后,再部署到AppFog上。


5.应用部署

应用部署需要通过AppFog专用的命令行工具af进行(貌似这种方式很流行的样子)。

af工具基于ruby,所以需要:

1)先装ruby;

2)再装gem;

3)然后通过gem安装af。

具体可参照AppFog说明:https://docs.appfog.com/getting-started/af-cli


安装完毕后就可以通过af对应用进行管理了:

首先登陆 :

af login

输入你的账号和密码,提示登陆ok。

然后cd到应用的根目录,如我的应用是jmppok/,执行更新命令

af update jmppok

会看到更新提示,如果全部OK,就是成功了。


6.测试应用

应用部署完毕后,就可以打开浏览器,输入应用的地址进行访问了。地址其实就是“应用名称”+“.ap01.aws.af.cm/”

比如我的应用就是http://jmppok.ap01.aws.af.cm/

你也可以通过上面第4步中提到的应用管理中的Visit Live Site进行访问,获取应用的地址。

我的应用可访问的页面有 3个,都非常简单:

1) http://jmppok.ap01.aws.af.cm/

2)http://jmppok.ap01.aws.af.cm/list

3)http://jmppok.ap01.aws.af.cm/regist



大家可以试一下。

7.总结

AppFog总体来说速度、稳定性都不错,管理也比较简单。可以自定义应用比较方便,但可能只适合程序员之流。

他相比传统的Blog,可以由程序员完全定制,比较自由。但门槛较高。

总值推荐广大钓丝程序员尝试。(富人可以去弄个付费的,就不要用这个了:) )

1 0
原创粉丝点击