Skip to main content

Flask 快速构建简单的Restful Web服务器

安装

python3 -m pip install flask

快速运行

from flask import Flask

app = Flask("myFlask")

# 仅允许GET和POST方法调用
@app.route("/", methods = ["GET", "POST"])
def myhandler():
	return "Hello World"

# 启动Flask,监听 :9000
app.run("0.0.0.0", 9000)

Flask处理参数

Query参数

from flask import request
@app.route("/", methods = ["GET"])
def handle_query():
	return request.query_string

访问 :9000/?id=myid&name=myname得到响应id=myid&name=myname

Param参数

@app.route("/author/<string:user_id>/posts", methods = ["GET"])
def handle_param(user_id):
	return user_id

访问 :9000/author/dormao/posts得到响应 dormao

通配符URL

@app.route("/assets/<path:mypath", methods = ["GET"])
def handle_wildcard(mypath):
	return mypath

访问 :9000/assets/bin/bash得到响应 bin/bash

Flask Restful

from flask import request

@app.route("/auth", methods = ["POST"])
def handle_wildcard():
	print(request.data)
	# b'{ "username": "myusername", "password": "mypassword" }'
	json = { "code": 200, "token": "123456789" }
	# Flask 自动序列化并加上 Header
	# 自定义响应码
	# return json, 201
	# return json, 404
	# return json, 401
	# 默认 200 OK
	return json

发起请求

curl \
-X POST \
-H 'Content-Type: application/json' \
-d '{ "username": "myusername", "password": "mypassword" }' \
http://localhost:9000/auth