- List item
请求数据及其获取
1.固定参数:
固定参数是指在URL中固定的, 是不可获取的一部分。例如:
IP地址/users/1
# 语法形式
@app.route('/users/<user_id>')
def user_info(user_id):
print(user_id)
2.查询参数获取
查询参数在URL中以?与主路由进行分隔, 查询参数是以键值对形式出现的, 键与值使用"="连接。
例如:
IP地址/user/?userid=333
@app.route('/')
def user_info():
# 通过['key']形式获取查询参数的user_id
user_id = request.args['userid']
3.表单数据获取
form表单数据, 一般应用与登录, 注册, 信息提交等. 配合前端的form表单使用, 一般form表单都是post请求, 注意路由中指定POST请求方法, 将表单数据封装在请求体中.
@app.route('/', method=['POST'])
def login():
# 获取form表单中的用户名
username = request.form.get('uname')
4.文件上传
@app.route('/upload', methods=['POST'])
def upload_file():
# 获取前端传递过来的文件对象
f = request.files.get('file_name')
# 获取图片名
print(f.filename)
# 获取上传文件的key
print(f.name)
# 保存文件对象
f.save('C:/Users/lisi6/Desktop/P7后端/code/static/%s'%f.filename)
5.其他请求参数
@app.route('/upload', methods=['POST'])
def upload_file():
# 获取请求头
print(request.headers)
# 获取指定的请求头
print(request.headers['Accept-Language'])
# 获取请求方法
print(request.method)
响应
1.字符串响应形式
直接使用return关键字返回一个字符串: return ‘hello flask’
2.模板响应形式
建立templates文件夹
在template中建立要返回的HTML页面
视图中使用render_template(‘HTML文件名’)返回模板
from flask import render_template
return render_template('index.html')
3.重定向响应形式
重定向是跳转至一个新的路由, 使用redirect
from flask import redirect,url_for
return redirect('/index')
# url_for根据给定的endpoint值找到对应的url
return redirect(url_for('idx'))
# 直接跳转至百度首页
return redirect('http://www.baidu.com')
4.json数据响应
返回json数据需要借助flask提供的jsonify来实现
from flask import jsonify
uname = request.form.get('name')
# 使用jsonify返回json格式
return jsonify(msg="ok",code=200,data={"name":uname})
5.元组数据响应
返回元祖时,第一个参数是要返回的内容,第二个参数是状态码,会覆盖正常的http请求的状态码,第三个参数是headers({‘author’: ‘jeremy’}字典是设置在响应头中的键值对信息)
data = {"name":uname}
return (data,333,{'author': 'jeremy'})