Flask 框架 重定向,捕获异常,钩子方法及使用jsonify在网页返回json数据

Flask 框架中常用到重定向方法来实现路由的跳转 ,路由跳转又分为站内跳转和站外跳转

常用的站内跳转方法为url_for  而常用的站外跳转为redirect

在这里提示一下: 在使用两种方法是须调用相对应的包:

redirect对应的为redirect包  而url_for对应url_for

例:

具体代码为:

捕获异常:即在服务器没有相应的时候用来进行友好提示,提高用户体验

具体代码为:

钩子方法:分为第一次请求之前,每一次请求之前和请求之后在后台返回的数据

jsonify:在页面返回json数据

# -*- encoding: utf-8 -*-

# 导包,导入重定向模块,url_for是简易寻找地址跳转,redirect是站外跳转 jsonify转化为json格式得数据
from flask import Flask, redirect, url_for,jsonify

# 建立flask对象
app = Flask(__name__)

# 开启debug模式
# 从配置文件里来加载配置
app.config.from_pyfile(‘config.ini‘)

# 使用flask路由 器  制定网址和控制器定义得参数同步
@app.route(‘++‘)
def index():
    return "你好世界 你好PYTHON"

# 使用url_for方法来实现简易得站内跳转 redirect是站外跳转
# 参数指定路由方法名称
@app.route(‘/2‘)
def reurl_in():
    return redirect(url_for(‘index‘))

# 使用程序入口讲flask应用启动,port参数用来调整端口号,flask,默认端口号是5000
if __name__ == "__main__":
    app.run()

# 使用jsonify模块来让网页直接显示json数据
@app.route(‘/json‘, methods=[‘POST‘])
def re_json():
    # 定义好数据格式
    json_dict = {‘id‘: 10, ‘title‘: "flask应用", ‘content‘: ‘flask得格式化‘}
    # 使用jsonify来将定义好得数据转化为json格式返回给前端
    return jsonify(json_dict)

# Flask统一对状态码捕获异常。用来进行友好提示,提高用户体验
@app.errorhandler(405)
def internal_server_error(e):
    return ‘这个接口不能被GET请求,只能发送post请求‘

@app.errorhandler(404)
def internal1_server_error(e):
    return ‘网页不存在‘

# 在第一次请求之前调用 首次
@app.before_first_request
def before_first_request():
    print("这是第一次请求之前调用的方法")

# 在每一次请求之前调用
@app.before_request
def before_request():
    print("每一次请求之前,调用这个方法")

# 在请求之后待用的方法,必须传响应参数,然后将响应内容返回
@app.after_request
def after_request(response):
    print("在请求之后调用这个方法")
    return response

# 在请求之后,调用服务器出现了错误信息,打印服务器出现了错误信息
@app.teardown_request
def teardown_request(e):
    print("服务器出现的错误是:%s" % str(e))

# 使用程序入口讲flask应用启动,port参数用来调整端口号,flask,默认端口号是5000
if __name__ == "__main__":
    app.run(debug=True)

原文地址:https://www.cnblogs.com/wjohh/p/10283415.html

时间: 2024-10-13 19:51:50

Flask 框架 重定向,捕获异常,钩子方法及使用jsonify在网页返回json数据的相关文章

通过FLASK中的RESPONSE返回JSON数据

使用flask的过程中,发现有时需要生成一个Response并返回.网上查了查,看了看源码,找到了两种办法: from flask import Response, json Response(json.dumps({'a': 1, 'b':1}),content_type='application/json') 更简单的方法是: from flask import jsonify jsonify({'a': 1, 'b': 2}) 本质上,两者是一样的.Werkzeug相关说明在这里. 当然,

SpringMVC中controller返回json数据的两种方法

SpringMVC中controller返回json数据的两种方法 1.jsp的ajax请求: function getJson(){ $.ajax({ type:"get", dataType:"json", url:"<%=basePath %>getJson", success:function(data){ for(var i=0;i<jsonData.length;i++){ alert("Id:"

spingmvc 返回json数据日期格式化方法

第一种: json 用的是这个依赖 <!-- JSON lib 开发包 以及它的依赖包 --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.6.0</version> </dependency> 在springmvc返回j

【转】JMeter中返回Json数据的处理方法

Json 作为一种数据交换格式在网络开发,特别是 Ajax 与 Restful 架构中应用的越来越广泛.而 Apache 的 JMeter 也是较受欢迎的压力测试工具之一,但是它本身没有提供对于 Json 数据的响应处理.本文中假设需要从 HTTP 的响应头中返回的 Json 格式的数据流中抽取某些特定的数据,数据格式如下: { "name":"Simpsons family", "members":[ {"firstName"

使用前端使用jQuery获取 在apsx页面的page_load方法直接返回json数据

工作中遇到直接使用webform中的page_load()的方法直接返回json结果 但是直接使用Response.Write("");这个方法返回的结果是字符串,在前端获取的是字符串,不能直接转为json数据 大概思路是在后端page_load()将object 序列号成json格式的字符串 前端将字符串反序列化成json对象 后端代码: protected void Page_Load(object sender, EventArgs e) { var jsonObject = n

MVC通过JsonResult返回Json数据,然后在视图页面中通过@Html.Partial()方法加载分部视图

首先,新建一个MVC类型的Web项目: 然后在Model文件夹下定义一个Student实体: public class Student { public int ID { get; set; } public string Name { get; set; } public string Sex { get; set; } public int Age { get; set; } } 然后新建一个Student控制器: using JsonDataWithMVC.Models; using Sy

返回Json数据浏览器带上&lt;pre&gt;&lt;/pre&gt;标签解决方法

问题:  当后台获取到前台传来的文件时(例如上传功能, 导入功能), 返回类型为application/json, 这个时候响应到前端的JSON格式的数据格式可能是: <pre style="word-wrap: break-word; white-space: pre-wrap;">{"JsonKey":"JsonValue"}</pre> 这个是不同浏览器对返回数据处理的问题. 解决方法:      1. 在前端解决

jQuery使用serializeArray()方法取得表单数据并附加json数据

转载自:http://blog.csdn.net/zheng963/article/details/49156395 一.serialize()方法1.格式var data = $("form").serialize();2.功能将表单内容序列化成一个字符串.3.返回结果username=forrest&passwd=1234&gender=0&interest=swimming&interest=running&interest=readBoo

asp.net webservice 返回json数据乱码解决方法

[WebMethod] public void QueryRiskNotice(string phone) { try { var data = _riskNoticeDal.QueryRiskNotice(phone); var list = from da in data.AsEnumerable() select new { //通知单 编号 number = da.Field<string>("t_number"), //通知单 日期 date = da.Field