google appengine是Google 管理的数据中心中用于 WEB 应用程序的开发和托管的平台,目前支持的语言有Java、Python、PHP和Go等,相当于免费的云主机(不用花钱就可以部署自己的网站,网站的域名是一个谷歌提供的二级域名),类似的目前国内有新浪的SAE,腾讯也有一个,阿里也有一个,百度也有一个。
在开发之前,你得安装google app engine,下载地址 https://cloud.google.com/appengine/downloads,选择for python的SDK。
然后按照上面的说明解压,安装。
由于flask是第三方库,所以我们需要把flask库文件放在我们开发的应用里,然后上传上去。
官方给的一个flask例子:https://console.developers.google.com/start/appengine,选择python那个,可以把这个demo下载下来,里面的lib就是我们需要的库文件,把lib目录放在我们新建的应用目录下面。
比如我们新建工程
mkdir hello 然后把lib拷贝到hello目录下
cd hello
vi hello.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello World!'
@app.route('/user/<name>')
def user(name):
return '<h1>hello, %s!<h1>' %name
if __name__ == '__main__':
app.run()
简单说一下,app.route的作用,它保存一个URL到python函数的映射关系,如果部署的服务器域名是www.example.com。在浏览器中访问http://www.example.com,会触发服务器执行index函数,你将会看到Hello, World!. 也可以在url中传入参数
@app.route('/user/<name>')
这样访问http://www.example.com/user/steven,会看到hello,steven!。
vi app.yaml (GAE的配置文件)
version: 1
runtime: python27
api_version: 1
threadsafe: true
handlers:
- url: .*
script: hello.app
libraries:
- name: jinja2
version: latest
- name: markupsafe
version: latest
vi appengine_config.py (加载第三方库文件,本应用是flask, 在lib目录下)
import sys
import os.path
sys.path.insert(0, os.path.join(os.path.dirname(__file__), 'lib'))
这样一个GAE应用就完成了,进入谷歌的gae,https://console.developers.google.com/project,建立专案输入ID(独一无二的):flask-10010
然后上传:
appcfg.py --oauth2 -A flask-10010 update ../hello/
上传成功后,访问http://flask-10010.appspot.com/就可以看到Hello, World!