Mac OS Flask 安装和运行
2017-04-24
系统环境
MacOS 10.12.4
Python 3.6
Flask 0.12.1
在安装前, 请先安装virtualenv
并设置好py3.6
的隔离环境, 以下操作均在该环境呢
virtualenv 的安装使用请参考https://www.u3v3.com/ar/1248
安装
在py3.6的环境下, 执行
pip install flask
即可,
如果是系统默认的环境中安装的话, 需要sudo权限
sudo pip install flask
这样, 我们就将flask
安装在了对应的环境中,
验证
进入ipython
中,
In [46]: import flask
In [47]: flask.__version__
Out[47]: '0.12.1'
可以看出, 我们的flask的版本是0.12.1
, 也是最新的稳定版
Flask 运行
在Flask的官网首页, 我们可以看到最简单的一个应用服务代码
from flask import Flask
app = Flask("Test")
@app.route('/')
def hello():
return 'hello world'
if __name__ == '__main__':
app.run(port=9999)
启动服务
export FLASK_DEBUG=1 # 设置debug环境变量, 允许文件更改自动加载以及debug输出
python run.py # 启动服务
可以看到输出如下
* Running on http://127.0.0.1:9999/ (Press CTRL+C to quit)
* Restarting with stat
* Debugger is active!
* Debugger PIN: 209-177-874
我们打开浏览器, 输入http://127.0.0.1:9999
, 就能看到输出的hello world
了
视图展示
以上仅仅返回了一个字符串展示, 如何进行模板渲染呢
from flask import Flask
from flask import render_template # 加载视图模块
app = Flask("Test")
@app.route('/')
def hello():
return 'hello world'
@app.route('/hello')
def show_page():
return render_template('hello.html') # 加载视图
if __name__ == '__main__':
app.run(port=9999)
在templates/hello.html
中
<h1>Hello World</h1>
参数获取
GET参数
@app.route('/hello/<name>')
def show_page(name=None):
return render_template('hello.html', name=name)
通过在route path中定义<param_name>的方式, 可以将参数传递到函数中
POST参数
from flask import request
@app.route('/post/hello', methods=['POST'])
def post():
name = request.form.get('name', 'default_name') # POST的表单数据获取
return render_template('hello.html', name=name)
视图展示
flask 默认Jinja2
模板引擎, 中文文档http://docs.jinkan.org/docs/jinja2/
,
该模板引擎入门简单, 容易掌握, 这里仅展示 name 变量展示
<h1>Hello {{name}}</h1>
{{name}}
负责渲染name
变量展示
效果如下
参考: