Flask 应用部署到新浪SAE中

flask虐我千百遍,我待flask如初恋

今天和几个朋友去联通接了一个做qq公众号开发的小项目,此为背景,就谷歌了下公众号的开发教程,结果发现微信开发者文档的例子居然使用PythonWeb.py框架写的,壮哉我大Python.一不小心就看到了将flask应用部署到新浪sae上的教程,于是折腾了一晚上后,就有了这篇文章.

前言

在折腾的过程中发现有个叫sae-python-dev的东西,然而就是在我的python3环境`中装不上,折腾好久无奈放弃.

要成功的在sae中运行起来flask应用需要以下几个条件:

  • 第三方库
  • index.wsgi #用来启动flask应用

下面我逐一介绍我踩过的坑

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
+---app
| +---auth #auth蓝本
| |
| +---main #main蓝本
| |
| +---static #静态资源
| | +---css
| | +---img
| | \---js
| +---templates # 模板
| | +---auth
| | \---mail
| \
+---migrations # 数据库迁移版本
|
+---site-packages # 第三方库
|
+---venv # 虚拟环境
|
|---config.py # 配置文件
|---index.wsgi # 启动应用
|---manage.py
|---requirements.txt
|---.gitignore
\

第三方库

在本地调试时,我们需要venv文件加中的内容—为本地提供第三方库
但是,在SAE环境中,需要我们将venv中的site-packages文件夹复制一份到flask应用根目录,为了告诉SAE我们的第三方库的位置,还需要对index.wsgi进行配置

1
2
3
4
5
6
7
8
9
10
import sae
import os
import sys
root = os.path.dirname(__file__) # 此文件所在位置
sys.path.insert(0, os.path.join(root, 'site-packages')) # root/site-packages
# 这是另一种方式,具体是否可行,没有测试
# sae.add_vendor_dir('site-packages')
from manage import app
# 启动应用
application = sae.create_wsgi_app(app)

部署

在确保本地运行正常的情况下,执行以下代码,利用git将应用部署到SAE

!注意:执行以下代码的前提是,你已经git clone SAE代码到本地,即当前git已经与远程仓库绑定,否则,还需自己手动绑定.

1
2
3
4
5
# 添加所有文件
git add --all
git commit --m 'init'
# 部署到SAE中
git push origin 1

在本地调试通过的情况下,经过以上步骤后,就可以通过访问新浪给予的二级域名来访问flask应用了

本文标题:Flask 应用部署到新浪SAE中

文章作者:定。

发布时间:2017年5月23日 - 22时05分

本文字数:1,276字

原始链接:http://cocofe.cn/2017/05/23/flask 应用部署到新浪SAE中/

许可协议: Attribution-NonCommercial 4.0

转载请保留以上信息。