gae 部署基于flask的web服务器

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!




你可能感兴趣的:(gae 部署基于flask的web服务器)