#转载请留言联系

flask 框架基本使用(1):https://www.cnblogs.com/chichung/p/9756935.html

1. flask 自定义返回状态码与响应头

from flask import Flask,make_response

app=Flask(__name__)

@app.route("/")
def index():
#666是指定的状态码,name:chichung是添加到响应头的键对
return "<h1>我是大标题</h1>",666,{"name":"chichung"} if __name__ == '__main__':
app.run()

2. flask 返回json

json 是 js 里面默认的一种对象格式,是当今网络普遍使用的一种数据传输格式,应用在不同的平台或不同的编程语言直接进行数据的传输。

在开发中,经常遇到后端返回 json 给前端的情况。那么,用 flask 应该怎么返回 json 呢?

from flask import Flask,jsonify

app = Flask(__name__)

@app.route("/index_data")
def index_data():
respond_data = { #判断json格式是否正确可以用搜索一下json格式化
"name": "chichung",
"height": 177,
"weight": 110.5
}
return jsonify(respond_data) if __name__ == '__main__':
app.run()

jsonify 方法可以把 respond_data 字典转化为 json 的字符串(原理与 json.dump())相同,然后在进行返回给前端。

拓展:

在返回不同的数据时(例如图片,js,css......),通常要指定响应头,写上返回的数据的类型。

# js
text/javascript
application/javascript

# css
text/css

# html
text/html

# json
application/json
text/json

# png,gif,jpg/jpeg
image/png
image/gif
image/jpeg
image/jpg

3. flask 实现网页的重定向响应

重定向响应是什么呢?举个栗子说明。京东以前的域名是www.360buy.com,而现在改为了www.jd.com。但是你访问360buy.com的时候,会自动跳转到jd.com。假设你是京东的web开发,你要实现这个功能,你会怎么做呢?

from flask import Flask,redirect

app=Flask(__name__)

@app.route("/")
def index():
return redirect("http://www.jd.com") if __name__ == '__main__':
app.run()

还有一种情况,你打开淘宝,点进“我的淘宝”,跳出了让你登录的窗口。这是怎么实现的呢?

from flask import Flask,redirect,url_for

app=Flask(__name__)

@app.route("/center")
def center():
#如果还没登录自动跳转到登录界面
url = url_for("login") #url_for的作用是根据视图函数的名称来自动生成对应的url地址
return redirect(url) @app.route("/login")
def login():
return "请登录" if __name__ == '__main__':
app.run()

进行页面跳转的编写时,一般不要固定跳转的 url 地址,而是采用 url_for 函数来生成对应的 url 地址。因为有些公司会定期更改一下 url ,但是视图函数的名字一直都是固定的。

拓展:

3xx统一都是表示页面重定向。

301 永久重定向

302 临时重定向

最新文章

  1. .NET框架设计(常被忽视的C#设计技巧)
  2. js获取div相对屏幕的坐标位置
  3. 【整理】--linux指令
  4. pm2 配置
  5. android EditView ime
  6. 将linux用在开发环境中
  7. JS小问题总结
  8. 如何实现XA式、非XA式Spring分布式事务
  9. 基于ActiveMQ的点对点收发消息
  10. flash引入
  11. Idea facet
  12. CCNP路由实验(2) -- OSPF
  13. linux下如何使用USB存储设备
  14. fido-uaf-protocol-v1.0
  15. 系统启动 之 Linux系统启动概述(1)
  16. JavaScript函数的各种调用模式
  17. babel分析
  18. 流式大数据计算实践(3)----高可用的Hadoop集群
  19. Centos7上实现不同网段的服务器文件共享
  20. js day03

热门文章

  1. Web性能测试问题,mysql分析之一
  2. 使用CSS3制作各种形状
  3. 使用Eclipse把java文件打包成jar
  4. springmvc上传图片并显示--支持多图片上传
  5. Grub Rescue修复方法[repost]
  6. 树莓派Raspberry Pi 3安装步骤
  7. [网站公告]又拍云API故障造成图片无法上传
  8. 一个关于pynoi游戏的C语言编程
  9. Microsxxxxxxx-面试总结
  10. TypeScript类型定义文件(*.d.ts)生成工具