Flask 中的Response

  • 1、return "helloword"
from flask import Flask
# 实例化Flask对象 app
app = Flask(__name__)
@app.route('/index')
# 视图函数
def index():
return 'helloword'
  • 2 render_template("html文件")
from flask import Flask
from flask import render_template @app.route('/home')
def home():
# 模板存放路径
# 创建 templates文件夹;右键文件夹 ---》Mark Directory as --->templates ---jinja2
return render_template('home.html')
# 启动服务
app.run()
  • 3、redirect("/home")

    • ResponseHeaders 中加入了一个 Location:http://url # 实现重定向
    • 302 http status
    • 4xx 错误 客户端
    • 5xx 错误 服务端
    from flask import Flask,render_template,redirect
    # 实例化Flask对象 app
    app = Flask(__name__) # app中的route装饰器 路由
    @app.route('/index')
    # 视图函数
    def index():
    return 'helloword'
    @app.route('/home')
    def home():
    # 模板存放路径
    return render_template('home.html')
    @app.route("/re")
    def re():
    # 重定向
    return redirect("/home")
    # 启动服务
    app.run()
    Flask 特殊返回值
  • 4、send_file('文件路径') 返回文件

    • 打开文件并返回文件内容;自动识别文件类型,并且在浏览器自动加上ResponseHeaders并且加入Content-Type:文件类型,是可以被客户端识别的文件类型;不能识别的文件类型 比如 .exe文件 会下载处理 - -浏览器会下载

      x-ms x:二进制 ; ms 微软

from flask import Flask, send_file
@app.route('/get_file')
def get_file():
# 返回helloword.py里的内容 Content-Type: text/plain; charset=utf-8
return send_file('helloword.py')
# 返回图片 Content-Type: image/jpeg
return send_file('1.jpg')
# 返回MP4 或 MP3 Content-Type: voide/mp4
return send_file('2.mp4')
# 下载 这个exe文件 Content-Type: application/x-msdownload
return send_file('3.exe')
# 启动服务
app.run()
  • 5、jsonify('字符串或数据类型') 返回标准格式的Json字符串

    • Content-Type:application/json

    • # 比如Flask更新了  1.1.1
      # return d # 暂时不建议使用,兼容性
      # 直接返回dict时 本质上在执行jsonify(d)
    • API接口

    • 序列化json字符串

    • 编写ResponseHeaders 加入Conent-Type:application/json

from flask import Flask, jsonify

# 实例化Flask对象 app
app = Flask(__name__)
@app.route('/get_json')
def get_json():
dic = {
"name": "anwen"
}
# Content-Type:application/json
return jsonify(d)
# 比如Flask更新了 1.1.1
# return dic # 暂时不建议使用,兼容性;直接返回dic时 本质上在执行jsonify(d)
# 启动服务
app.run()

Flask 中的request

# -*- coding: utf-8 -*-
# @Time : 2019/9/24 11:07
# @Author : AnWen
import os from flask import Flask, render_template, request, redirect app = Flask(__name__)
app.debug = True # 报错 405 Method Not Allowed
# methods=['GET', 'POST'] 添加路由的装饰器允许请求方式,覆盖
@app.route('/login', methods=['GET', 'POST'])
def login():
# request.method 获取请求方式
if request.method == 'GET':
# 在Django request.GET 取出 URL 中的参数
# 在Flask 获取URL 中的参数
# print(request.url) # 请求地址 http://127.0.0.1:9999/login?id=wen
# print(request.url_charset) # URL 编码方式 utf-8
# print(request.url_root) # 请求地址 完整请求地址 host http://127.0.0.1:9999/
# print(request.url_rule) # 请求路由地址 /login
# print(request.values.to_dict()) # 接收所有(GET,POST)请求中的数据,包含了 URL 和 FormData 中的数据 {'id': 'wen'}
# print(request.args.get("id")) # 获取URL中的数据 字符串 wen
return render_template('login.html')
if request.method == 'POST':
# request.form获取 FormData中的数据
# print(request.form) # ImmutableMultiDict([('username', '123')])
# print(request.form.get('username')) # 123
# print(request.form.to_dict()) # {'username': '123'} # request.files 所有文件类型全部放在这里 包括二进制 音频视频
# print(request.files.get("myfile")) # 文件对象<FileStorage: 'Flask day01.md' ('application/octet-stream')>
# my_file = request.files.get('myfile')
# # my_file.save('bf.jpg') # 当前目录下会保存一个bf.jpg
# new_file = os.path.join('img',my_file.filename)
# my_file.save(new_file) # 保存原文件到文件夹中 # 获取其他数据
# request.headers
# request.cookies
# request.path == request.url_rule
# request.host == "127.0.0.1:9527"
# request.host_url == "http://127.0.0.1:9527/" # 特殊提交方式数据获取
# Content-Type:application/json
# request.json 获取Content-Type:application/json时提交的数据
# Content-Type 无法被识别 或 不包含Form字眼
# request.data 获取 原始请求体中的数据 b"" return '200 ok'
# return redirect('/') @app.route('/')
def index():
return render_template('index.html') if __name__ == '__main__':
app.run("0.0.0.0", 9999)

Falsk中的Request、Response的更多相关文章

  1. python-django_rest_framework中的request/Response

    rest_framework中的request是被rest_framework再次封装过的,并在原request上添加了许多别的属性: (原Django中的request可用request._requ ...

  2. 使用 Masstransit中的 Request/Response 与 Courier 功能实现最终一致性

    简介 目前的.net 生态中,最终一致性组件的选择一直是一个问题.本地事务表(cap)需要在每个服务的数据库中插入消息表,而且做不了此类事务 比如:创建订单需要 余额满足+库存满足,库存和余额处于两个 ...

  3. 在Struts2的Action中获得request response session几种方法

    转载自~ 在Struts2中,从Action中取得request,session的对象进行应用是开发中的必需步骤,那么如何从Action中取得这些对象呢?Struts2为我们提供了四种方式.分别为se ...

  4. struts2的action中获得request response session 对象

    在struts2中有两种方式可以得到这些对象 1.非IoC方式 要获得上述对象,关键Struts 2中com.opensymphony.xwork2.ActionContext类.我们可以通过它的静态 ...

  5. 过滤器中的chain.doFilter(request,response)

    Servlet中的过滤器Filter是实现了javax.servlet.Filter接口的服务器端程序,主要的用途是过滤字符编码.做一些业务逻辑判断等.其工作原理是,只要你在web.xml文件配置好要 ...

  6. LoadRunner中取Request、Response

    LoadRunner中取Request.Response LoadRunner两个“内置变量”: 1.REQUEST,用于提取完整的请求头信息. 2.RESPONSE,用于提取完整的响应头信息. 响应 ...

  7. ASP.NET中的Request、Response、Server对象

    Request对象 Response.Write(Request.ApplicationPath) //应用根路径 Request.AppRelativeCurrentExecutionFilePat ...

  8. struts2中获取request、response,与android客户端进行交互(文件传递给客户端)

    用struts2作为服务器框架,与android客户端进行交互需要得到request.response对象. struts2中获取request.response有两种方法. 第一种:利用Servle ...

  9. JavaWeb(一)Servlet中的request与response

    一.HttpServletRequest概述 1.1.HttpServletRequest简介 HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP ...

随机推荐

  1. 如何将自己的代码发布到Maven中央仓库?

    去年在公司做工作流相关业务时,当时使用flowable做引擎,中途涉及到一些业务上的需求,自己整理了一些代码,考虑到开源精神,当时就想着将于公司业务无关的代码抽离出来,放到Maven中央仓库中,以供别 ...

  2. 纯数据结构Java实现(3/11)(链表)

    题外话: 篇幅停了一下,特意去看看其他人写的类似的内容:然后发现类似博主喜欢画图,喜欢讲解原理. (于是我就在想了,理解数据结构的确需要画图,但我的文章写给懂得人看,只配少量图即可,省事儿) 下面正题 ...

  3. SpringBoot中快速实现邮箱发送

    前言 在许多企业级项目中,需要用到邮件发送的功能,如: 注册用户时需要邮箱发送验证 用户生日时发送邮件通知祝贺 发送邮件给用户等 创建工程导入依赖 <!-- 邮箱发送依赖 --> < ...

  4. Springboot整合html 报java.lang.IllegalArgumentException: Root element name cannot be null

    解决: <!DOCTYPE><html> 改为 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitiona ...

  5. rabbitmq集群操作与启停

    一.rabbitmq集群必要条件 1.1. 绑定实体ip,即ifconfig所能查询到的绑定到网卡上的ip,以下是绑定方法 1.2. 配置域名映射到实体ip 二.启动停止 2.1 停止 2.2 启动 ...

  6. ASP.NET Core 中的 ServiceProvider

    前言 在 ASP.NET Core 中,微软提供了一套默认的依赖注入实现,该实现对应的包为:Microsoft.Extensions.DependencyInjection,我们可以通过查看其对应的开 ...

  7. MySQL之主从同步

    一.主从同步概念 1.1 什么是主从同步? MySQL 主从同步是指将数据从一个 MySQL 数据库服务器主节点复制到一个或多个从节点.MySQL 默认采用异步复制方式,这样从节点不用一直访问主服务器 ...

  8. YARN底层基础库

      YARN基础库是其他一切模块的基础,它的设计直接决定了YARN的稳定性和扩展性,YARN借用了MRV1的一些底层基础库,比如RPC库等,但因为引入了很多新的软件设计方式,所以它的基础库更多,包括直 ...

  9. Java集合框架之Set接口浅析

    Java集合框架之Set接口浅析 一.java.util.Set接口综述: 这里只对Set接口做一简单综述,其具体实现类的分析,朋友们可关注我后续的博文 1.1Set接口简介 java.util.se ...

  10. .NET平台下,钉钉微应用开发之:工作消息通知

    首先看下官方文档,为我们提供了POST请求地址,和几个必传参数的列表以及参数示例,写的都挺详细的. 无奈提供的SDK请求示例是JAVA的,而我用的是.NET的,所以还是摸了一些坑出来,其实也就是不同平 ...