Flask的传参以及返回的响应

传参

  1. 固定参数
from flask import Flask 

app.Flask(__name__)

# <int:整型>/<string:字符串>/<默认字符串>
@app.route('/hello/<int:id>')
def hello(id)
	return f'接收到的ID为:{id}'

if __name__ == '__main__':
    app.run()
  1. 自定义转换器
from flask import Flask
from flask import BaseConverter

app = Flask(__name)

# 自定义转换器
class PhoneConverter(BaseConverter):
	# regex固定变量
    regex = r'1[3-9][0-9]{9}'
    
app.url_map.converters['phone'] = PhoneConverter

@app.route('/phone/<phone:my_phone>'
def get_phone(my_phone):
    return f'手机号为{my_phone}'

if __name__ == '__main__':
    app.run()
  1. 查看传递参数’get’
from flask import Flask      
from flask import request
 # 查看传递参数
 @app.route('/query')
 def query():
     params = request.args.to_dict() # 把不可变字典转换为普通字典
     print(params)
     name = request.args['name']
     age = request.args.get('age')
     return f'当前名字为:{name}, 年龄为:{age}'

if __name__ == '__main__':
    app.run()
  1. 表单的获取 ‘post’
from flask import Flask 
from flask import request

@app.route('/form', methods=['post'])
def form():
    name = request.form.get('name')
    age = request.form.get('age')
    return f'name:{name}, age:{age}'

if __name__ == '__main__':
    app.run()
  1. 上传文件
from flask import Flask
from flask import request

@app.route('/upload', methods=['post'])
def upload():
    img = request.files.get('img')
    print(img)
    # 保存到当前目录下的static里
    img.save('./static/01.png')
    return '上传成功'     

if __name__ == '__main__':
    app.run()     
  1. 其他参数
from flask import Flask
from flask import request

@app.route('/other')
def other():
    print(request.headers)
    print(request.method)
    print(request.url)
    return '其他参数'

if __name__ == '__main__':
    app.run()     
  1. 查看头部参数
req = reqparse.RequestParser()
req.add_argument('token', default='', location='headers')
args = req.parse_args()

响应的返回

  1. 返回HTML页面的数据
from flask import Flask
from flask import render_template

app.Flask(__name__)

@app.route('/page')
def page():
    return render_template('hello.html')

if __name__ == '__main__':
    app.run()     
  1. 返回响应时跳转页面
from flask import Flask 
from flask import redirect

app.Flask(__name__)

@app.route('/jump')
def jump():
    return redirect('https://www.baidu.com')

if __name__ == '__main__':
    app.run()     
  1. 返回字典
from flask import Flask
from flask import jsonify

app.Flask(__name__)

@app.route('/return_json')
def return_json():
    data = {
        'name': 'zhangsan',
        'age': 18,
        'action': ['吃', '睡觉', '上厕所']
    }
    return jsonify(data)  

if __name__ == '__main__':
    app.run()     
  1. 返回元组
from flask import Flask

app.Flask(__name__)

@app.route('/return_json')
def return_json():
    return ('hello', 5400,{'aaa': 'bbbb'})  

if __name__ == '__main__':
    app.run()     
  1. 自定义响应对象
from flask import Flask
from flask import make_response

app.Flask(__name__)

@app.route('/return_json')
def return_obj():
    resp = make_response('hello')
    resp.status = '404'
    resp.headers['aaa'] = 'bbb'
    return resp  

if __name__ == '__main__':
    app.run() 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值