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 = r1[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 fname:{
            
     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()
经验分享 程序员 微信小程序 职场和发展