【Flask三剑客与request】 -- 2019-08-07 10:45:20

【Flask三剑客与request】 -- 2019-08-07 10:45:20,第1张

概述原创: http://106.13.73.98/__/129/ Flask三剑客1 HttpResponse Redirect render_template HttpResponse @app.route('/') # route用于指定url路径def index(): return 'Hello World' # HttpResponse 这里直接返回结果,其内部调用的就是Ht

原创: http://106.13.73.98/__/129/

Flask三剑客1

@R_301_6822@Response Redirect render_template @R_301_6822@Response
@app.route('/')  # route用于指定url路径def index():    return 'Hello World'  # @R_301_6822@Response

这里直接返回结果,其内部调用的就是@R_301_6822@Response方法.
Flask中的@R_301_6822@Response在我们看来其实就是直接返回字符串.

Redirect
from flask import redirect@app.route('/home')def home():    return redirect('/index')  # 将跳转至url路径为"/index"的页面

当访问/home这个地址时,视图函数会触发redirect(‘/‘)方法,将跳转至URL地址为/index的页面,同时触发/index路径对应的视图函数.

render_template

在开始之前,请先在你当前项目的根目录下创建一个名为templates目录,用于存放模版文件.
这是Flask框架的规则,默认情况下目录名必须为templates,否则可能会遇到Jinja2的报错.
你也可以在实例化app时通过template_folder参数指定新的模板目录。

from flask import render_template@app.route('/login')def login():    return render_template('login.HTML')  # 将返回模板目录templates下的login.HTML页面

这里我们要说一下 Jsonify 与 send_file 方法
*
Jsonify**
Jsonify方法返回的是Json类型的数据,且会使Centent-Type: application/Json.

from flask import Jsonify@app.route('/Json')def Json():    return Jsonify({"name": "zyk","sex": "boy"})

send_file
send_file可将文本内容,图片,视频等信息放到网页上.

from flask import send_file@app.route('/text')def text():    return send_file("文件路径")    # 其文件可以是文本、图片、视频
request method 判断请求的类型 args GET请求的数据,可使用 to_dict 将其转为字典 form POST 请求的数据,需要在 route 中允许 POST 请求的数据:methods=[‘POST‘] headers 获取请求头中的信息 Json 如果在请求头中指定了 Content-Type 为 application/Json,将返回 Json 数据,否则返回空 data 存放非 mimetype 类型的数据,即 Content-Type 无法解析的数据,原始数据,其类型为 bytes path 当前的url路径,例如:/long url 完整的url路径 script_root 返回当前url路径的上一级路径 url_root 当前url路径的上一级的完整路径 host 访问主机的url host_url 访问主机的完整url values 获取说有类型请求的数据 files 获取上传的文件 cookies 获取 cookies 信息 environ 所有数据

request 是基于 mimetype 进行处理的,如果不属于 mimetype 类型的数据,request 会将其转化为 Json 格式并存到data中,其实我们可以通过 request.data 和 Json.loads 拿到同样的数据。

上传文件示例

如果遇到文件上传的话,request.files 里面存的是你上传的文件,但是 Flask 在这个文件的 *** 作中加了一定的封装,让 *** 作变得极为简单



前端代码:

<form method="post" enctype="multipart/form-data">    <input type="file" name="file">    <input type="submit" value="提交"></form>


后端代码:

from flask import Flask,request,render_templateapp = Flask(__name__)@app.route('/load',methods=['GET','POST'])  # methods=['GET','POST']  允许GET,POST请求def load():    if request.method == 'POST':        # print(request.files)  # ImmutableMultIDict([('file',<fileStorage: '会心一笑.png' ('image/png')>)])        # print(request.files['file'])  # <fileStorage: '会心一笑.png' ('image/png')>        file = request.files['file']        file.save('img.png')  # save保存文件        return 'is ok'    return render_template('load.HTML')app.run('0.0.0.0',5000,deBUG=True)


这样我们就成功的上传了一个名叫 "img.png" 的文件了, *** 作还是很简单的.

原创: http://106.13.73.98/__/129/

回到顶部?

总结

以上是内存溢出为你收集整理的【Flask三剑客与request】 -- 2019-08-07 10:45:20全部内容,希望文章能够帮你解决【Flask三剑客与request】 -- 2019-08-07 10:45:20所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1195359.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存