安装
pip install Flask
hello world
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return 'hello world'
if __name__ == '__main__':
app.debug = True
app.run(host='localhost', port=8888)
运行后,访问http://localhost:8888
,即可看到hello world。
@app.route('/')
中的就是url。
路由&变量规则
GET方法的url参数可变,访问:
http://localhost:8888/1
http://localhost:8888/2
…
即可进入不同的分支。
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return 'hello world'
@app.route('/<name>')
def usr(name):
if name == '1':
return '11111'
else:
return 'eeeee'
@app.route('/<int:post_id>')
def show_post(post_id):
return f'Post {post_id}'
if __name__ == '__main__':
app.debug = True
app.run(host='localhost', port=8888)
类型 | 说明 |
---|---|
string(默认) | 接受任何不包含斜杠的文本 |
int | 接受正整数 |
float | 接受正浮点数 |
path | 类似 string,但可以包含斜杠 |
uuid | 接受 UUID 字符串 |
HTTP方法
POST方法
直接访问http://localhost:8888/login
,为GET请求,返回form表单的登录界面。
点击”提交“,为POST请求,此时应该返回另一个界面。
from flask import request
@app.route('/login', methods=['GET', 'POST'])
def login():
if request.method == 'POST':
return do_the_login()
else:
return show_the_login_form()
Request对象
request对象包含前端发送过来的所有请求数据。
request.method
:获取请求方法
request.form['username']
:获取表单用户名
request..form['password']
:获取表单密码
@app.route('/login', methods=['POST', 'GET'])
def login():
error = None
if request.method == 'POST':
if valid_login(request.form['username'],
request.form['password']):
return log_the_user_in(request.form['username'])
else:
error = 'Invalid
return render_template('login.html', error=error)
返回JSON数据给前端
from flask import Flask, jsonify
app = Flask(__name__)
app.config['JSON_AS_ASCII'] = False # 中文编码
@app.route('/index')
def index():
data = {
'name': '张三'
}
return jsonify(data)
if __name__ == '__main__':
app.debug = True
app.run(host='localhost', port=8888)