设为首页收藏本站

 找回密码
 注册

QQ登录

只需一步,快速开始

BCM 门户 IT世界 应用开发 查看内容

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

2014-1-22 14:16| 发布者: Test| 查看: 214| 评论: 0|来自: jmppok的专栏

摘要: 目前网络上有很多提供云存储、云空间、VPS的厂商,从功能、稳定性、易用性、人气等方面考虑,作者认为AppFog是一个不错的选择,而且他还是免费的。本文对AppFog空间的申请过程、应用创建与开发、部署等方面对其进行 ...

目前网络上有很多提供云存储、云空间、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之类的邮件客户端,里面有邮件模板:

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

  1. Name = Bert Lee  
  2. Company = lenovo  
  3. Location = china  
  4. Interest in AppFog = Every technology. Every infrastructure.  
你也可以直接写一封Email,复制收件人,主题和上面内容,发送。


4)再次确认

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

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

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

  1. 1. Please type out the email address you wish to use for the account here --> jmppok@gmail.com  
  2. 2. Please tell us what Code (programming) Languages (NOT the language you speak) you plan to use in your application(s):Java & Python  
  3. 3. 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应用)

  1. import bottle  
  2. import os  
  3.   
  4. def application(environ, start_response):  
  5.     data = "Hello World! AppFog Python Support"  
  6.     start_response("200 OK", [  
  7.             ("Content-Type""text/plain"),  
  8.             ("Content-Length", str(len(data)))  
  9.             ])  
  10.     return iter([data])  


2)自定义应用

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

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

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

  1. #!/usr/bin/python  
  2. # -*- coding: utf-8 -*-  
  3. import bottle  
  4. from  bottle import *  
  5. import os  
  6.   
  7. data_map={}  
  8.   
  9. application = bottle.default_app()  
  10.  
  11. @route('/')  
  12. def index():  
  13.     return "Hello! \nAppFog Python Support"  
  14.  
  15. @route('/list')  
  16. def ls_all():  
  17.     global data_map  
  18.     data_str = ""  
  19.     for k,v in data_map.items():  
  20.         data_str += "<tr><td>%s</td><td>%s</td></tr>" %(k,v)  
  21.     return "<table border='1'> <tr><th>key</th><th>value</th></tr>"+data_str+"</table>"  
  22.      
  23. @route('/regist')  
  24. def regist():  
  25.     return ''''' 
  26.         <form action="/regist" method="post"> 
  27.             Key: <input name="key" type="text" /> 
  28.             Value: <input name="value" type="text" /> 
  29.             <input value="regist" type="submit" /> 
  30.         </form> 
  31.     '''  
  32.  
  33. @route('/regist', method='POST')  
  34. def do_regist():  
  35.     k = request.forms.get('key')  
  36.     v = request.forms.get('value')  
  37.     global data_map  
  38.     if (len(data_map.keys())<101):  
  39.         data_map[k]=v  
  40.         return """ 
  41.             <script language="javascript"> 
  42.               alert("Regist success!"); 
  43.               top.location='/list'; 
  44.             </script> 
  45.         """  
  46.     else:  
  47.         return """ 
  48.             <script language="javascript"> 
  49.               alert("Regist failed! \nOnly 100 keys can be registed!\n You can delete some keys to continue regist."); 
  50.               top.location='/list'; 
  51.             </script> 
  52.         """  
  53. @route('/get/<name>')  
  54. def get_val_of_key(name):  
  55.     global data_map  
  56.     if(name in data_map.keys()):  
  57.         return "<P>key=%s</P><P>value=%s</P>" %(name,data_map[name])  
  58.     else:  
  59.         return "<P>Can't find key=%s.</P>" %(name)  
  60.  
  61. @route('/del/<name>')   
  62. def del_key(name):    
  63.     global data_map  
  64.     if(name in data_map.keys()):  
  65.         del data_map[name]  
  66.     return """ 
  67.             <script language="javascript"> 
  68.               top.location='/list'; 
  69.             </script> 
  70.         """  
  71. if __name__ == '__main__':  
  72.     from wsgiref.simple_server import make_server  
  73.     srv = make_server('localhost'8088, application)  
  74.     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,可以由程序员完全定制,比较自由。但门槛较高。

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

路过

雷人

握手

鲜花

鸡蛋

相关阅读

最新评论

手机版|小黑屋|BC Morning Website ( Best Deal Inc. 001 )  

GMT-8, 2025-8-25 18:10 , Processed in 0.016550 second(s), 19 queries .

Supported by Best Deal Online X3.5

© 2001-2025 Discuz! Team.

返回顶部