记得有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. Shader学习笔记 (一) :利用shader在一个面绘制出圆

    在各种游戏中,想必大家一定和我一样总是惊叹于游戏画面的各种炫酷的特效. 作为游戏开发中单独列出的一个职业TA(Technology Art),他们会利用GLSL或者HLSL等着色器语言绘制出一幅幅美丽 ...

  2. 3.1 IDA Pro编写IDC脚本入门

    IDA Pro内置的IDC脚本语言是一种灵活的.C语言风格的脚本语言,旨在帮助逆向工程师更轻松地进行反汇编和静态分析.IDC脚本语言支持变量.表达式.循环.分支.函数等C语言中的常见语法结构,并且还提 ...

  3. AI歌姬,C位出道,基于PaddleHub/Diffsinger实现音频歌声合成操作(Python3.10)

    懂乐理的音乐专业人士可以通过写乐谱并通过乐器演奏来展示他们的音乐创意和构思,但不识谱的素人如果也想跨界玩儿音乐,那么门槛儿就有点高了.但随着人工智能技术的快速迭代,现在任何一个人都可以成为" ...

  4. C语言【编译器、变量、输入输出有关的】

    C语言[编译器.变量.输入输出有关的] 一些想到的[从编译器到变量到输入输出有关的]的问题,有些是按自己理解写的答,有些待解决. C语言可以跨平台,汇编不可以,编译时C语言会根据不同系统翻译成不同形式 ...

  5. NEFU OJ Problem1485 贪吃蛇大作战 题解

    Problem:F Time Limit:1000ms Memory Limit:65535K 题目 Description 贪吃蛇大家一定都玩过吧,现在宋哥也要玩这个游戏,最初的时候贪吃蛇从屏幕的左 ...

  6. Kubernetes 中的服务注册与发现原理分析

    公众号「架构成长指南」,专注于生产实践.云原生.分布式系统.大数据技术分享. 对k8s有点了解技术人员,应该都只知道k8s是有服务注册发现的,今天就分析下这个原理,看看怎么实现的. 什么是服务注册与发 ...

  7. Markdown语法入门与进阶指南

    一.Markdown简介 Markdown是一种轻量级标记语言,创始人为约翰·格鲁伯(john Gruber).它允许人们使用易读易写的纯文本格式编写文档,然后转换成有效的XHTML(或者HTML)文 ...

  8. AtCoder_abc328

    A - Not Too Hard 题目链接 题目大意 给出\(N\)个数(\(S_1\) \(S_2\)...\(S_n\))和一个\(X\),输出所有小于等于\(X\)的\(S_i\)之和 解题思路 ...

  9. 神经网络优化篇:详解训练,验证,测试集(Train / Dev / Test sets)

    训练,验证,测试集 在配置训练.验证和测试数据集的过程中做出正确决策会在很大程度上帮助大家创建高效的神经网络.训练神经网络时,需要做出很多决策,例如: 神经网络分多少层 每层含有多少个隐藏单元 学习速 ...

  10. [ABC274F] Fishing

    Problem Statement On a number line, there are $N$ fish swimming. Fish $i$, which has a weight of $W_ ...