Flask是一款轻量级的Python Web框架,相比于Django,其更适合于快速开发产品原型,只需要很少的代码量就可以构建一个Web项目。
在实践经验中碰到过很多问题踩过不少坑,在此总结记录一个可用的项目结构实例。
安装
一般而言,推荐每个项目都构建虚拟环境,因为同一台服务器可能运行多个不同的项目,每个项目需要的包版本可能不同,有潜在的兼容性问题。
1
2
3
4
5
|
$ mkdir /project/flask
$ cd /project/flask
$ virtualenv env
$ source env/bin/activate
$ (env) pip install flask
|
Flask安装至项目目录的虚拟环境中,不会对系统其他位置产生影响。
Flask初探
接下来我们搭建一个最简单的Web服务器:
1
2
3
4
5
6
7
8
9
10
11
12
|
# -*- coding: utf-8
# hello.py
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World!"
if __name__ == "__main__":
app.run()
|
执行python hello.py
,访问http://localhost:5000

最简单的服务器搭建完成,如果需要开发增加更多功能,可直接修改这份文件。
但是随着项目进展,功能会越来越多,过多代码堆砌在一个文件的方式显然不可取,按照如下结构拆分这个应用,便于组织。
1
2
3
4
5
6
|
项目文件目录
├── app
│ ├── __init__.py
│ └── views.py
├── gunicorn.conf
└── run.py
|
其中run.py是程序执行入口,gunicorn.conf是配置文件,方便后期部署,views.py存放所有的路由。
实例代码:
1
2
3
4
5
|
# run.py
from app import app
if __name__ == '__main__':
app.run()
|
1
2
3
4
5
6
7
|
# views.py
from app import app
@app.route('/', methods=['GET', 'POST'])
def index():
return 'Hello World!'
|
1
2
3
4
5
6
|
# __init__.py
from flask import Flask
app = Flask(__name__)
from app import views
|
运行python run.py
,访问http://localhost:5000
,结果和上面的程序一样。
这种项目结构更为清晰,类似于MVC框架,可以十分快速地完成所需功能,一些小型项目使用Flask足矣。
Changelog:
文章作者
xNathan
上次更新
2016-05-04
许可协议

本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可。