Flask | 入门级应用

写一个最基础的 Flask 应用

Posted by Haauleon on June 5, 2018

一、访问路由并返回响应

  写一个最简单的 hello.py,实现功能:用户请求应用根地址'/'时,处理该请求的视图函数index()返回一个 HTML 字符串。

1
2
3
4
5
6
from flask import Flask
app = Flask(__name__)

@app.route('/')
def index():
    return "<h1>Haauleon is a 卡哇伊捏 girl</h1>"

  以上代码写完后,在激活虚拟环境的条件下,执行以下命令行后打开浏览器访问 http://127.0.0.1:5000/ 。
(venv) $ export FLASK_APP=hello.py
(venv) $ flask run

  下图为实现效果:



二、访问动态路由并根据动态参数返回响应

  定义一个包含动态部分的路由 URL,视图函数根据传进来的动态参数返回响应。

1
2
3
@app.route('/user/<name>')
def user(name):
    return "<h1>{},欢迎回家,洗洗睡吧</h1>".format(name)

  下图为实现效果:



三、查看 Flask 应用中的映射

  假设要审查上面的 hello.py 文件中的 URL 映射关系。

1
2
3
$ python
>>> from hello import app
>>> app.url_map

审查结果如下:



四、使用 Flask 请求对象

  Flask 可以通过上下文变量 request 对外开放请求对象,可使用一些常见的属性或方法,这里用到了 HTTP 请求方法。

1
2
3
@app.route('/user/center', methods=['GET', 'POST'])
def userCenter():
    return "今天真的好困啊"

  下图为中规中矩地使用已确定的请求方法发送请求的实现效果:

  下图为使用不允许的 HTTP 请求方法发送请求的实现效果:



五、使用 Flask 响应对象

  响应里面的特殊类型重定向是用来告诉浏览器一个新的 URL 并加载这个 URL 即新页面。

1
2
3
4
5
from flask import redirect

@app.route('/sleep')
def sleep():
    return redirect('http://127.0.0.1:5000/user/center')

  下图为实现效果: