Flask响应数据

目录

1.响应数据之新手三件套

  1.1 字符串响应形式:

1.2 模板响应形式

2. 响应json数据与元组

   2.1 json数据响应

 2.2 元组数据响应

 3.make_response()自定义响应


1.响应数据之新手三件套

  1.1 字符串响应形式:

        字符串:直接使用return关键字返回一个字符串: return 'hello flask'

1.2 模板响应形式

模板的返回:

        建立templatest文件夹(在pycharm中Mark Directory as Template Folder, pycharm中还需要设置模板引擎为jinjia2)

        在template中建立要返回的HTML页面

        在视图中使用render_template('HTML文件名')返回模板

        例如:

​
# 示例:
from flask import Flask
from flask import render_template

app = Flask(__name__)


@app.route('/')
def index():
    # render_template()返回模板
    return render_template('index.html')


if __name__ == '__main__':
    app.run()

​

1.3 重定向响应形式

                重定向:重定向是跳转至一个新的路由,使用redirect

                重定向的形式:

                        直接重定向一个外链

                        重定向一个内部链接

                重定向外链和内链:

# 重定向外链
from flask import Flask
from flask import redirect

app = Flask(__name__)


@app.route('/')
def index():
    # 访问/根路由, 直接跳转至百度首页
    return redirect('http://www.baidu.com/')


if __name__ == '__main__':
    app.run()
    
# 重定向至内部连接
from flask import Flask
from flask import redirect
from flask import url_for

app = Flask(__name__)


@app.route('/')
def start():
    # 使用url_for跳转至内部链接, url_for()中指定某个路由的endpoint值
    return redirect(url_for('idx'))
	# redirect直接跳转, 内部传入指定的路由
    # return redirect('/index')


@app.route('/index', endpoint='idx')
def index():
    return 'index页面'


if __name__ == '__main__':
    app.run(debug=True)
   

2. 响应json数据与元组

   2.1 json数据响应

       返回json数据需要借助flask提供的jsonify来实现

        例如:

# 实例如下:
from flask import Flask
from flask import jsonify

app = Flask(__name__)


@app.route('/index', endpoint='idx')
def index():
    # 字典形式数据
    data = {
            'name': 'jeremy',
            'age': 18
        }
    # 返回json数据
    return jsonify(data)
# 看一下源码

if __name__ == '__main__':
    app.run(debug=True)

 2.2 元组数据响应

    元组形式: 可以返回一个元组。这样的元组必须是(response, status, headers)的形式,且至少包含2个元素。status 值会覆盖状态代码, headers可以是一个列表或者字典,作为额外的消息表头值

# 示例如下:
from flask import Flask
from flask import jsonify

app = Flask(__name__)


@app.route('/index', endpoint='idx')
def index():
	# return ('要返回的字符串', 6969是状态码, {'author': 'jeremy'}字典是设置在响应头中的键值对信息)
    return ('要返回的字符串', 6969, {'author': 'jeremy'})


if __name__ == '__main__':
    app.run(debug=True)

 3.make_response()自定义响应

        make_response()形式:flask可以返回make_response自定义的响应,make_response()内部需要传递返回的字符串,起创建的对象还有headers属性用于设置响应头,status属性用于设置状态码

        

# 示例如下:
from flask import Flask
from flask import make_response


app = Flask(__name__)


@app.route('/index', endpoint='idx')
def index():
    # 响应字符串
    resp = make_response('自定义的响应字符串')
    # 响应头键值对
    resp.headers['author'] = 'jeremy'
    # 状态码与状态码提示信息
    resp.status = '6969 a post'
    # 注意: 响应头键值对与状态码提示信息均为英文, 否则抛异常
    return resp


if __name__ == '__main__':
    app.run(debug=True)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值