记得有template

'''
导入flask类。该类的实例将会成为我们的wsgi应用
__name__是一个适用于大多数情况的快捷方式,有了这个参数,flask才能知道在那里找到模板和静态文件等东西
然后我们使用route()装饰器来告诉flask触发函数的url
函数返回需要在用户浏览器中显示的信息。默认的内容类型是html
'''
import os '''
路由
使用route()装饰器来把函数绑定到url
''' ''''
Http方法
web应用使用不同的http方法来处理url。
缺省晴空下,一个路由只回应get请求。可以使用route()装饰器的methods参数来处理不同的http方法
'''
from flask import Flask, request, jsonify, redirect, url_for, flash, render_template from werkzeug.utils import secure_filename app = Flask(__name__) # @app.route('/')
# def hello_world():
# return 'Hello, World!' """
给路由传参示例
有时我们需要将同一类url映射到同一个视图函数处理,比如:使用同一个视图函数来显示不同用户的个人信息
"""
# @app.route('/user/<user_id>')
# def user_info(user_id):
# return 'hello %s' % user_id """
路由传参的参数默认当作string处理,也可以指定参数的类型
"""
@app.route('/user/<int:user_id>')
def user_ino(user_id):
return 'hello %d' % user_id """
指定请求方式
在falsk中,定义一个路由,默认的请求方式为:
get/option/head
如果想添加请求方式,那可以如下指定
"""
@app.route('/demo1/',methods=['get','post'])
def demo1():
"直接从请求中取到请求方式并返回"
return request.method '''
返回json 在使用flask写一个接口时候需要给客户端返回json数据,在falsk中可以直接使用jsonify生成一个json的响应 ''' @app.route('/demo3/')
def demo3():
json_dict = {
'id':123,
'name':'李四'
}
return jsonify(json_dict) '''
重定向
'''
# 重定向
@app.route('/demo4/')
def demo4(): return redirect(url_for('demo3')) '''
自定义状态码
在falsk中,可以很方便的返回自定义状态码
'''
@app.route('/demo8/')
def demo8():
return '状态码为 666', 666 '''
请求钩子
在客户端和服务器交互的过程中,有些准备工作或扫尾工作需要处理,比如
在请求开始时,建立数据库链接
在请求开始时,根据需求进行权限校验
在请求结束时,指定数据的交互格式
falsk 支持如下四种请求钩子
before_first_request:在处理第一个请求前执行
before_request:在每次请求前执行,如果在某修饰的函数中返回了一个响应,视图函数建不再被调用
after_request:如果没有抛出错误,在每次请求后执行,接受一个参数:视图函数作出的响应,在此函数中可以对响应值在返回之前做最后一步修改处理,需要将参数中的响应在此参数中进行返回
teardown_request:在每次请求后执行,接受一个参数:错误信息,如果有相关错误抛出
''' # 在第一次请求之前调用,可以在此方法内部做一些初始化操作
# @app.before_first_request
# def before_first_request():
# print("before_first_request")
#
#
# # 在每一次请求之前调用,这时候已经有请求了,可能在这个方法里面做请求的校验
# # 如果请求的校验不成功,可以直接在此方法中进行响应,直接return之后那么就不会执行视图函数
# @app.before_request
# def before_request():
#
# print("before_request")
#
#
# # 在执行完视图函数之后会调用,并且会把视图函数所生成的响应传入,可以在此方法中对响应做最后一步统一的处理
# @app.after_request
# def after_request(response):
# print("after_request")
# response.headers["Content-Type"] = "application/json"
# return response
#
#
# # 请每一次请求之后都会调用,会接受一个参数,参数是服务器出现的错误信息
# @app.teardown_request
# def teardown_request(e):
# print("teardown_request") @app.route('/')
def index():
return 'index' '''
上传文件
''' @app.route('/upload/', methods=['POST', 'GET'])
def upload():
if request.method == 'POST':
f = request.files['file']
basepath = os.path.dirname(__file__) # 当前文件所在路径
upload_path = os.path.join(basepath, r'.\static\uploads', secure_filename(f.filename))
f.save(upload_path)
return redirect(url_for('upload'))
return render_template('up.html',name='cf') '''
url_for
给指定的函数构造url
访问静态文件(css/javascript等),只要在你的包中或是模块的所在目录中创建一个名为stagic的文件夹,在应用中使用/stagic即可访问 ''' if __name__ == '__main__':
app.run(debug=True,host='0.0.0.0', port=9100)

flask 上传文件,视图的更多相关文章

  1. flask上传文件到指定路径

    flask上传文件到指定路径 项目结构如下: 首先是:视图函数uload_file.py,代码如下: #!/usr/bin/env python # -*- coding: utf-8 -*- fro ...

  2. FLask上传文件

    目录 Flask上传文件 改进上传 上传进度条 一个更简便的方案 Flask上传文件 文件上传的基本原理实际上很简单,基 本上是: 一个带有 enctype=multipart/form-data 的 ...

  3. flask 上传文件

    flask upload 近日在学习python,接触到了flask框架,刚好客户有个需求,需要在网页上传一个python 代码的zip包,然后使用docker 容器运行这个zip里面的程序,输出结果 ...

  4. 记一次flask上传文件返回200前端却504的问题

    前言 好久没写了, 主要是太忙了, 本篇记一下今天解决的一个问题吧, 耗了我大半天的时间才解决 问题 今天在调试代码时, 发现了一个诡异的问题, 我之前写了一个接口, 作用是接收上传的文件, 因为这个 ...

  5. flask上传文件时request.files为空的解决办法

    在做上传文件的时候遇到request.files是空 原因在于html中的表单form没有指明 enctype="multipart/form-data" <form met ...

  6. windows python flask上传文件出现IOError: [Errno 13] Permission denied: 'E:\\git\\test\\static\\uploads'的解决方法

    在浏览器中输入时,出现IOError: [Errno 13] Permission denied: 'E:\\git\\test\\static\\uploads' http://127.0.0.1: ...

  7. Flask -- 请求、上传文件、Cookies

    请求对象 from flask import request request.method #值为form表单提交的method 'POST'. 'GET'等 #如果值为'POST'或'PUT',则可 ...

  8. flask jQuery ajax 上传文件

    1.html 代码 <div> <form id="uploadForm" enctype="multipart/form-data" > ...

  9. Ajax+Python flask实现上传文件功能

    HTML: <div > <input type="file" name="FileUpload" id="FileUpload&q ...

  10. flask插件系列之flask_uploads上传文件

    前言 flask可以实现上传文件和下载文件的基本功能,但如果想要健壮的功能,使用flask_uploads插件是十分方便的. 安装 pip install flask_uploads 基本使用 # e ...

随机推荐

  1. 【Azure Durable Function】PowerShell Activity 函数遇见 Newtonsoft.Json.JsonReaderException: The reader's MaxDepth of 64 has been exceeded.

    问题描述 创建PowerShell Azure Durable Function,执行大量的PowerShell脚本操作Azure Resource,遇见了一个非常非常奇怪的问题: Function ...

  2. 教你如何使用PyTorch解决多分类问题

    本文分享自华为云社区<使用PyTorch解决多分类问题:构建.训练和评估深度学习模型>,作者: 小馒头学Python. 引言 当处理多分类问题时,PyTorch是一种非常有用的深度学习框架 ...

  3. 想基于AI变现吗,这个Star有1.8K的开源项目分享给你

    前言 在如今AI爆发的时代,每个人都想借着AI这股风,进行变现,今天给大家分享一个开源项目,他可以让你基于AI的能力进行变现 项目介绍 这个项目在Github有1.8k个star,可见其欢迎程度,作者 ...

  4. Modbus转PROFINET网关助力电子天平与西门子PLC无缝对接

    背景: 在制药.食品科学和其他行业中,电子天平被广泛用于质量控制和分析实验.它们可以用于检测样品的净重.含量和浓度,并用于监测产品的制造过程. 常州某反应器公司实验室近期采购一批电子天平,现需要把电子 ...

  5. 2023第十四届极客大挑战 — MISC WP

    Misc方向题解:来自本人 cheekin 请前往"三叶草小组Syclover"微信公众号输入flag获得flag 我的解答: 关注公众号回复就可以得到一张图片,图片隐写zsteg ...

  6. 25 个超棒的 Python 脚本合集

    Python是一种功能强大且灵活的编程语言,拥有广泛的应用领域.下面是一个详细介绍25个超棒的Python脚本合集: 1. 网络爬虫:使用Python可以轻松编写网络爬虫,从网页中提取数据并保存为结构 ...

  7. 全面的.NET微信网页开发之JS-SDK使用步骤、配置信息和接口请求签名生成详解

    JSSDK使用步骤 步骤一:绑定安全域名: 先登录微信公众平台进入"公众号设置"的"功能设置"里填写"JS接口安全域名". 步骤二:引入JS ...

  8. RocksDB 在 vivo 消息推送系统中的实践

    作者:vivo 互联网服务器团队 - Zeng Luobin 本文主要介绍了 RocksDB 的基础原理,并阐述了 RocksDB 在vivo消息推送系统中的一些实践,通过分享一些对 RocksDB ...

  9. [ABC327G] Many Good Tuple Problems

    题目链接 简化题意:有一个 \(n\) 个点的图,问有多少个长度为 \(M\) 的边序列,满足连边后图是二分图. \(n\le 30,m\le 10^9\) 考虑先强制要求无重边. 定义 \(f_{i ...

  10. hszxoj 货车运输 [lca]

    题目链接: hszxoj 货车运输 题目描述与思路 简化题目: 求 \(x\)到 \(y\) 两点间路径的边权最小值的最大值 与之前的最短路最大的不同是这道题是多源最短路,那么 \(spfa\) 就废 ...