Flask入门

学习文章:http://www.pythondoc.com/flask-restful/first.html

http://www.cnblogs.com/Xrinehart/p/3506467.html

在C:flask>目录下,新建一个app.py文件

#!flask/bin/python
from flask import Flask, jsonify
from flask import abort
app = Flask(__name__)

tasks = [
    {
        'id': 1,
        'title': u'Buy groceries',
        'description': u'Milk, Cheese, Pizza, Fruit, Tylenol',
        'done': False
    },
    {
        'id': 2,
        'title': u'Learn Python',
        'description': u'Need to find a good Python tutorial on the web',
        'done': False
    }
]

@app.route('/todo/api/v1.0/tasks', methods=['GET'])
def get_tasks():
    return jsonify({'tasks': tasks})

@app.route('/todo/api/v1.0/tasks/<int:task_id>', methods=['GET'])
def get_task(task_id):
    task = list(filter(lambda t: t['id'] == task_id, tasks))
	#对tasks列表中的选项依次执行函数lambda t: t['id'] == task_id,将执行结果为True(!=0)的选项组成一个List/String/Tuple(取决于sequence的类型)返回,False则退出(0),进行过滤。
    if len(task) == 0:
        abort(404)
    return jsonify({'task': task[0]})
	
if __name__ == '__main__':
    app.run(debug=True)

C:flask>python app.py

执行结果

注意原文有段代码是:

task = filter(lambda t: t['id'] == task_id, tasks)

运行时会报TypeError: object of type 'filter' has no len()

需要强转filter的返回类型为list类型
task = list(filter(lambda t: t['id'] == task_id, tasks))
原文地址:https://www.cnblogs.com/amoyzhu/p/7814209.html