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. 《Java 8 in Action》Chapter 1:为什么要关心Java 8

    自1998年 JDK 1.0(Java 1.0) 发布以来,Java 已经受到了学生.项目经理和程序员等一大批活跃用户的欢迎.这一语言极富活力,不断被用在大大小小的项目里.从 Java 1.1(199 ...

  2. 【已解决】Https请求—未能创建 SSL/TLS 安全通道

    在做项目的微信推送消息功能时,由于微信并发量大,导致其它第三方接口调用时直接挂掉报错. 问题: 测试工程师做压测,100个线程同时调用微信和XX站的接口,日志报XX站的“请求被中止: 未能创建 SSL ...

  3. IT人不仅要提升挣钱能力,更要拓展挣钱途径

    前几天我上班路上,和小区门口开车的师傅闲聊,发现他们虽然学历不高,但挣钱的途径不少,比如固定接送多位客户,然后能通过朋友圈拓展新客户,而且通过客户口口相传,也能不断拉到生意,算下来每月也能挣1万5出头 ...

  4. CSS文本超出用省略号代替的方法

    { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }

  5. python 17 内置模块

    目录 1. 序列化模块 1.1 json 模块 1.2 pickle 模块 2. os 模块 3. sys 模块 4. hashlib 加密.摘要 4.1 加密 4.2 加盐 4.3 文件一致性校验 ...

  6. Lock同步锁

    Lock同步锁 一.前言 在Java 5.0 之前,协调共享对象的访问时可以使用的机制只有synchronized 和volatile .Java 5.0 后增加了一些新的机制,但并不是一种替代内置锁 ...

  7. Leetcode之深度优先搜索(DFS)专题-547. 朋友圈(Friend Circles)

    Leetcode之深度优先搜索(DFS)专题-547. 朋友圈(Friend Circles) 深度优先搜索的解题详细介绍,点击 班上有 N 名学生.其中有些人是朋友,有些则不是.他们的友谊具有是传递 ...

  8. crontab使用方法

    一.crontab基本用法 1.1 cron服务 cron是一个linux下 的定时执行工具,可以在无需人工干预的情况下运行作业. service crond start //启动服务 service ...

  9. Kth Minimum Clique_2019牛客暑期多校训练营(第二场)

    题目连接: https://ac.nowcoder.com/acm/contest/882/D Description Given a vertex-weighted graph with N ver ...

  10. luogu- P1373 小a和uim之大逃离 DP 四维,其中一维记录差值

    P1373 小a和uim之大逃离: https://www.luogu.org/problemnew/show/P1373 题意: 在一个矩阵中,小A和小B轮流取数,小A可以从任意点先取,小B后取,最 ...