一、获取请求
- 获取get请求: request.args
- 访问:http://127.0.0.1:5000/user?username=ceshi
from flask import Flask, request
# 创建Flask应用程序实例
app=Flask(__name__)
@app.route('/user',methods=['GET'])
def get_user():
#获取URL中的请求参数
url_param = request.args
#查看获取到的请求参数的类型
print(type(url_param))
#获取请求参数中的username对应的值
username=url_param.get('username')
return f'Hello,{username}!'
#运行应用程序
if __name__ == '__main__':
app.run()
- 获取post请求: 请求体是Json,request.json
from flask import Flask, request
# 创建Flask应用程序实例
app=Flask(__name__)
@app.route('/data', methods=['POST'])
def process_data():
#获取 JSON格式请求体
data = request.json
#查看获取到的请求参数的类型
print(type(data))
#获取请求体中对应字段的值
name=data.get('name')
age = data.get('age')
return f'Name:{name},Age:{age}'
#运行应用程序
if __name__ == '__main__':
app.run()
- 获取post请求: form表单request.form
from flask import Flask, request
# 创建Flask应用程序实例
app=Flask(__name__)
@app.route('/login',methods=['POST'])
def login():
#获取表单格式请求体
user_info=request.form
#查看获取到的请求参数的类型
print(type(user_info))
#获取请求体中对应字段的值
username=user_info.get('username')
password = user_info.get('password')
return f'Welcome,{username}!'
#运行应用程序
if __name__ == '__main__':
app.run()
- 获取post请求: 文件请求体 request.files
from flask import Flask, request
# 创建Flask应用程序实例
app=Flask(__name__)
@app.route('/upload', methods=['POST'])
def upload_file():
#获取文件格式请求体
file=request.files
# 获取请求URL
r_url = request.url
# 获取请求域名
r_host = request.host
# 获取请求头信息
r_headers = request.headers
# 获取请求方法
r_method = request.method
print(r_url, r_host, r_headers, r_method)
#查看获取到的请求参数的类型
print(type(file))
#获取请求体中对应字段的值
f=file.get("file")
#保存文件
#需要提前创建uploads目录,secure_filename可以确保文件名安全
f.save('./uploads/' + secure_filename(f.filenam1e))
# 判断请求方法为POST
if r_method == 'POST':
# 判断请求头中包含My-Header字段并且值为hogwarts
if r_headers.get('My-Header') == "hogwarts":
# 保存文件
f = file.get("file")
f.save('./uploads/' + secure_filename(f.filename))
return f'File {f.filename} is saved! URL is {r_url},host is{r_host}'
return f"My-Header is missing!"
return f'File {f.filename}is saved!'
#运行应用程序
if __name__ == '__main__':
app.run()
二、处理响应
# 处理响应
from flask import Flask,jsonify,render_template,make_response
#创建Flask应用程序实例
app = Flask(__name__)
#定义路由和视图函数
@app.route('/text')
def text_res():
return '返回文本'
# 返回元组,返回内容:响应体、状态码、header
@app.route('/tuple')
def tuple_res():
return "你好呀",200,{"hogwarts":"Harry"}
# 返回json格式响应体
@app.route('/json')
def get_json():
#jsonify({'status':0}) 直接传字典进来
return jsonify(status=1, name="lily", age=20) # 关键字传参
# 直接返回字典构造json格式响应
@app.route('/dict')
def get_dict():
return{'status':0}
# 返回html
@app.route('/html')
def get_html():
#调用render_template方法,传入html文件的名称。
#注意html文件必须在templates目录下
return render_template('demo.html')
#定义路由和视图函数
@app.route('/')
def index():
resp = make_response(render_template('demo.html'))
#设置cookie
resp.set_cookie('username','the username')
#设置响应头信息
resp.headers["hogwarts"] = "Hary"
return resp
if __name__ == '__main__':
app.run(host='0.0.0.0',port=5001,debug=True)