【python】Flask

在这里插入图片描述

文章目录

  • 1、Flask 介绍
  • 2、Flask 实现网页版美颜效果
  • 3、参考

1、Flask 介绍

Flask 是一个用 Python 编写的轻量级 Web 应用框架。它设计简单且易于扩展,非常适合小型项目到大型应用的开发。

以下是一些 Flask 库中常用的函数和组件:

一、Flask 应用对象

Flask(__name__):创建一个 Flask 应用实例。

from flask import Flask
app = Flask(__name__)

二、路由和视图函数

@app.route(path, methods=['GET', 'POST']):装饰器,用于将 URL 路径绑定到视图函数。

@app.route('/')
def hello_world():return 'Hello, World!'

三、请求对象

request:包含有关客户端请求的信息,比如请求参数、表单数据、HTTP 头等。

from flask import request@app.route('/greet', methods=['POST'])
def greet():name = request.form['name']return f'Hello, {name}!'

四、响应对象

make_response(response, *args, **kwargs):创建一个响应对象,可以附加 HTTP 状态码和头信息。

from flask import make_response@app.route('/custom_response')
def custom_response():response = make_response("This is a custom response")response.headers['X-Special-Header'] = 'Some value'return response

五、会话管理

session:一个签名的字典对象,用于跨请求存储信息。

from flask import session@app.route('/login', methods=['POST'])
def login():session['username'] = request.form['username']return 'Logged in successfully!'@app.route('/logout')
def logout():session.pop('username', None)return 'You were logged out'

六、模板渲染

render_template(template_name_or_list, **context):渲染一个模板,并返回生成的 HTML。

from flask import render_template@app.route('/template')
def template_example():return render_template('example.html', name='John Doe')

七、重定向

redirect(location, code=302, response=None):生成一个重定向响应。

from flask import redirect@app.route('/redirect_me')
def redirect_example():return redirect('http://www.example.com')

八、URL 生成

url_for(endpoint, **values):生成 URL,对于动态 URL 特别有用。

from flask import url_for@app.route('/url_for_example')
def url_for_example():return f'The URL for the index is {url_for("index")}'

九、异常处理

@app.errorhandler(code_or_exception):装饰器,用于处理特定异常或 HTTP 状态码。

@app.errorhandler(404)
def page_not_found(e):return 'Sorry, the page you are looking for does not exist.', 404

十、配置

app.config.from_object(config_object) 或 app.config.update(dictionary):加载配置。

class Config:DEBUG = Trueapp.config.from_object(Config)

十一、扩展

Flask 还支持许多扩展,用于数据库交互(如 Flask-SQLAlchemy)、用户认证(如 Flask-Login)、文件上传(如 Flask-WTF)等。

十二、示例完整应用

from flask import Flask, request, render_template, redirect, url_for, session, make_responseapp = Flask(__name__)
app.secret_key = 'your_secret_key'  # 用于会话管理@app.route('/')
def index():return 'Welcome to Flask!'@app.route('/greet', methods=['POST'])
def greet():name = request.form['name']return f'Hello, {name}!'@app.route('/login', methods=['POST'])
def login():session['username'] = request.form['username']return redirect(url_for('profile'))@app.route('/logout')
def logout():session.pop('username', None)return redirect(url_for('index'))@app.route('/profile')
def profile():username = session.get('username', 'Guest')return f'Profile page for {username}'@app.route('/custom_response')
def custom_response():response = make_response("This is a custom response")response.headers['X-Special-Header'] = 'Some value'return responseif __name__ == '__main__':app.run(debug=True)

这些只是 Flask 的一些核心功能,Flask 还有更多高级特性和扩展,可以根据需求进行探索和使用。

2、Flask 实现网页版美颜效果

初始化设计好的网页界面 index.html

在这里插入图片描述

代码实现

import os
from flask import Flask
from flask import request
from flask import render_template
from datetime import timedelta
import cv2value = 20def Beauty(path, filename):img = cv2.imread(path)img_res = cv2.bilateralFilter(img, value, value * 2, value / 2)filename = './out/{}'.format(filename)cv2.imwrite(filename, img_res)# cv2.imshow('img', img_res)# cv2.waitKey(0)return filenameapp = Flask(__name__)
# # 设置静态文件缓存过期时间
app.config['SEND_FILE_MAX_AGE_DEFAULT'] = timedelta(seconds=1)
ALLOWED_EXTENSIONS = set(['bmp', 'png', 'jpg', 'jpeg'])
UPLOAD_FOLDER = r'./static/'
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDERdef allowed_file(filename):return '.' in filename and \filename.rsplit('.', 1)[1] in ALLOWED_EXTENSIONS@app.route('/', methods=['GET', 'POST'])
def index():return render_template('index.html')@app.route('/beauty', methods=['GET', 'POST'])
def beauty():if request.method == 'POST':file = request.files['image']print(file)if file and allowed_file(file.filename):path = os.path.join(app.config['UPLOAD_FOLDER'], file.filename)file.save(path)output = Beauty(path, file.filename)print(output)return render_template('index.html', output = output)else:return render_template('index.html', alert = '文件类型必须是图片!')else:return render_template('index.html')if __name__ == '__main__':app.run(debug=True)

运行显示结果如下

 * Running on http://127.0.0.1:5000

我们在浏览器中打开此链接

在这里插入图片描述

选择文件,点击上传,默认的文件夹路径配置为 UPLOAD_FOLDER = r'./static/',可以将图片提前放到配置的文件夹目录下

显示添加成功后

在这里插入图片描述

可以在保存的目录下查看结果,filename = './out/{}'.format(filename),可以看到保存在的是在 out 文件夹下

输入

在这里插入图片描述

输出

在这里插入图片描述

输入

在这里插入图片描述

输出

在这里插入图片描述

输入

在这里插入图片描述

输出

在这里插入图片描述

磨皮效果明显

3、参考

  • 十来行代码,用Python做一个迷你美图秀秀

  • 代码目录:
    链接: https://pan.baidu.com/s/11ALwPkknz61V5ugXLznThQ?pwd=596q
    提取码: 596q

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/467439.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AI大模型如何重塑软件开发流程?

《AI大模型对软件开发流程的重塑:变革、优势、挑战与展望》 一、传统软件开发流程与模式(一)传统软件开发流程(二)传统软件开发模式面临的问题(一)AI在软件开发中的应用场景(二&…

OceanBase 应用实践:如何处理数据空洞,降低存储空间

问题描述 某保险行业客户的核心系统,从Oracle 迁移到OceanBase之后,发现数据存储空间出现膨胀问题,数据空间 datasize9857715.48M,实际存储占用空间17790702.00M。根据 required_mb - data_mb 值判断,数据空洞较为严重…

Zookeeper运维秘籍:四字命令基础、详解及业务应用全解析

文章目录 一、四字命令基础二、四字命令详解三、四字命令的开启与配置四、结合业务解读四字命令confconsenvi命令Stat命令MNTR命令ruok命令dump命令wchswchp ZooKeeper,作为一款分布式协调服务,提供了丰富的四字命令(也称为四字短语&#xff…

MATLAB大数计算工具箱及其用法

1. MATLAB大数工具箱Variable Precision Integer Arithmetic介绍 Variable Precision Integer Arithmetic是John DErrico 开发的大数运算工具箱,可以用完全任意大小的整数进行算术运算。支持vpi定义的数组和向量。 2.MATLAB代码 完整代码见: https://download.cs…

【野生动物识别系统】Python+深度学习+人工智能+卷积神经网络算法+TensorFlow+ResNet+图像识别

一、介绍 动物识别系统,使用Python作为主要开发语言,基于深度学习TensorFlow框架,搭建卷积神经网络算法。并通过对18种动物数据集进行训练,最后得到一个识别精度较高的模型。并基于Django框架,开发网页端操作平台&…

数据库_SQLite3

下载 1、更新软件源: sudo apt-get update 2、下载SQLite3: sudo apt-get install sqlite3 3、验证: sqlite3启动数据库,出现以下界面代表运行正常。输入 .exit 可以退出数据库 4、安装sqlite3的库 sudo apt-get install l…

PyTorch核心概念:从梯度、计算图到连续性的全面解析(三)

文章目录 Contiguous vs Non-Contiguous TensorTensor and ViewStrides非连续数据结构:Transpose( )在 PyTorch 中检查Contiguous and Non-Contiguous将不连续张量(或视图)转换为连续张量view() 和 reshape() 之间的区别总结 参考文献 Contig…

如何解决导入aioredis报错TypeError: duplicate base class TimeoutError的问题(轻松解决,亲测有效)

下面是根据你的要求撰写的文章: 文章目录 📖 介绍 📖🏡 演示环境 🏡📒 aioredis导包报错 📒📝 解决方案📝 小贴士⚓️ 相关链接 ⚓️📖 介绍 📖 最近在使用Python异步redis模块aioredis的时候遇到了一个错误,导包报错提示 TypeError: duplicate base cla…

基于Springboot+Android的智慧社区互助平台 (含源码数据库)

1.开发环境 开发系统:Windows10/11 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql5.7或8.0 数据库可视化工具: navicat 服务器: SpringBoot自带 apache tomcat 主要技术: Java,Springboot,mybatis,mysql,vue 2.视频演示地址 3.功能 这个系…

讨论一个mysql事务问题

最近在阅读一篇关于隔离级别的文章,文章中提到了一种场景,我们下面来分析一下。 文章目录 1、实验环境2、两个实验的语句执行顺序3、关于start transaction和start transaction with consistent snapshot4、实验结果解释4.1、实验14.2、实验24.3、调整实…

Kubernetes-编排工具篇-01-Kustomize与Helm对比

Kustomize与Helm对比 0、前言 K8s 是一个开源容器编排平台,可自动执行容器化应用程序的部署、扩展和管理。近年来,K8s 已成为采用云原生架构和容器化技术的组织的标准。 但是由于K8s的复杂性,所以很多公司以及开源组织都在开发相关的工具来…

确定图像的熵和各向异性 Halcon entropy_gray 解析

1、图像的熵 1.1 介绍 图像熵(image entropy)是图像“繁忙”程度的估计值,它表示为图像灰度级集合的比特平均数,单位比特/像素,也描述了图像信源的平均信息量。熵指的是体系的混乱程度,对于图像而言&#…

数字IC后端设计实现之Innovus自动修复Min Step DRC Violation方案

在实际IC后端项目中我们经常会遇到min step的DRC Violation,如下图所示。 在咱们IC后端训练营项目中也会遇到这类DRC Violation。这类DRC Violation的本质是出现Metal的Notch,即metal有凹槽。 如果是pg net的 Min Step问题,我们可以使用下面的…

进程相关内容

进程内容 进程类型守护进程进程的概念查看进程信息父子进程创建子进程进程结束 – exit/_exit进程回收 –wait waitpid 进程类型 交互进程 (Interactive Process) 交互进程是由用户通过终端或图形界面直接启动的进程,例如我们在命令行输入的命令。它通常需要等待用…

石墨舟氮气柜:半导体制造中的关键保护设备

石墨舟是由高纯度石墨材料制成的,主要用于承载硅片或其他基板材料通过高温处理过程,是制造半导体器件和太阳能电池片的关键设备之一。 石墨舟在空气中容易与氧气发生反应,尤其是在高温处理后,表面可能更为敏感;石墨舟具…

rabbitMq双节点高可用集群安装(亲测可用)

查询系统版本 cat /etc/redhat-release CentOS Linux release 7.7.1908 (Core) rabbitmq v3.9.13 (centos7支持比较大的版本了,后面版本貌似都是centos8以上) erlang erlang-23.3.4.11-1.el7.x86_64 (需要和rabbitmq版本匹配&…

简单介绍一下mvvm mvc mvp以及区别、历史

MVC(Model - View - Controller) 因MVC架构的灵活性,架构图形式很多,仅供参考 历史: MVC 是最早出现的软件架构模式之一,其历史可以追溯到 20 世纪 70 年代,最初被用于 Smalltalk - 80 环境。…

Nordic SoftDevice蓝牙主机操作流程

Nordic SoftDevice蓝牙主机操作流程 之前学习nordic的nus client 主机例程时做了些笔记,现在有空重新整理了一下发出来。 NRF_SDH_BLE_OBSERVER 宏介绍 这个宏可以设置多个BLE事件的回调函数,并按设置的优先级依次执行。这么一来,就可以将…

C++生成高斯分布随机数

简单实现 在 C 中&#xff0c;可以使用 头文件中的功能来生成正态分布&#xff08;高斯分布&#xff09;随机数。以下是一个示例&#xff0c;展示如何使用 C11 及以上版本的标准库生成正态分布随机数。 #include <iostream> #include <random> #include <cmat…

SL6115降压恒流 60V降压恒流芯片,高精度1%,PWM模拟调光

一、核心参数与性能 工作电压范围&#xff1a;5.5V至60V&#xff0c;宽输入电压范围使其能够适应多种应用场景。 最大输出电流&#xff1a;根据公开发布的信息&#xff0c;SL6115的最大输出电流可达到1.2A至1.5A&#xff0c;具体取决于不同版本或制造商的规格说明。这一高输出…