flask框架——获取请求处理响应

一、获取请求

  • 获取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)

 

posted @ 2025-08-21 10:36  Alieen617  阅读(16)  评论(0)    收藏  举报