上市公司网站建设分析,做网站销售电销好做吗,深圳深度网站建设,全国小学网站建设欢迎关注『OpenCV DNN Youcans』系列#xff0c;持续更新中 【OpenCV DNN】Flask 视频监控目标检测教程 01 【OpenCV DNN】Flask 视频监控目标检测教程 01 1. 面向Python程序的Web框架2. Flask 框架的安装与使用2.1 Flask 安装2.2 Flask 框架例程2.3 绑定IP和端口2.4 Flask路… 欢迎关注『OpenCV DNN Youcans』系列持续更新中 【OpenCV DNN】Flask 视频监控目标检测教程 01 【OpenCV DNN】Flask 视频监控目标检测教程 01 1. 面向Python程序的Web框架2. Flask 框架的安装与使用2.1 Flask 安装2.2 Flask 框架例程2.3 绑定IP和端口2.4 Flask路由 本系列从零开始详细讲解使用 Flask 框架构建 OpenCV DNN 模型的 Web 应用程序。
将OpenCV DNN模型部署到Web端不需要安装任何依赖只需要访问Web地址就可以访问和运行应用程序。
面向Python程序的Web框架可以用于部署应用程序。Web框架使开发者可以专注于应用程序的核心算法和业务逻辑而不必具体处理底层细节例如协议、套接字或进程和线程管理。 1. 面向Python程序的Web框架
Web 框架主要用于网站开发为开发者实现业务逻辑提供了一套通用方法可以实现数据的交互和业务功能的完善。
开发者在基于Web框架实现业务逻辑时可以专注于应用程序的核心算法和业务逻辑而不必具体处理底层细节例如协议、套接字或进程和线程管理。在进行数据缓存、数据库访问、数据安全校验等方面不需要自己重新实现。
Python的开发速度和灵活性使其可以很容易地快速建立和运行网站。Python在web框架中提供了大量的选择和自由度。
Django Django是一个免费的、开源的全栈Python Web 开发框架开发快速、代码较少、可扩展性强。Django 采用 MTVModel、Template、View模型组织资源框架功能丰富模板扩展选择最多适合大型网站开发。Django的学习曲线相对陡峭灵活度较差。
Flask Flask 是一个Python 编写的Web微框架让我们可以用Python语言快速实现Web服务。只提供Web服务器支持不提供全栈开发支持。Flask 非常轻量、学习简单适合小微原型系统的开发。
Bottle Bottle 是一个用于 Python 的快速、简单和轻量级的 WSGI 微型网络框架。它作为单个文件模块分发除了 Python 标准库之外没有任何依赖项。支持干净和动态的 URL。
Flask 是非全栈框架Flask 具有以下依赖项
Werkzeug WSGI 工具包 WSGI 实用程序库Jinja2模板引擎
Django 和 Flask 均可用于部署开发计算机视觉和深度学习应用程序但 Flask 的学习曲线更平滑且 Flask 专注于极简主义。 2. Flask 框架的安装与使用
2.1 Flask 安装
为了使用 Flask 构建计算机视觉 Web 应用程序首先进行安装 $ pip3 install flask 安装完成后通过控制台命令cmd或 Anaconda Prompt (miniconda)进入命令行进行测试。
$ python import flaskprint(flask.__version__)
2.3.12.2 Flask 框架例程
使用Flask框架编写一个显示“Hello Flask!”的web程序介绍如何配置、调试Flask框架。
1新建一个Flask项目项目的文件树如下。
---项目文件名\|---static\|---templates\|--- server.py项目默认配置建立static和templates目录static目录用来存放静态资源例如图片、js、css文件等templates目录存放模板文件。网站逻辑保存在Python程序文件server.py中。
# server.py
from flask import Flask # 导入 Flask 包app Flask(__name__) # 用当前脚本名称实例化Flask对象app.route(/) # 将函数绑定到指定URL
def hello():return Hello Flask!if __name__ __main__:app.run() # 启动一个本地开发服务器激活该网页例程首先创建 Flask 类的实例作为Web服务器的网关接口Web Server Gateway Interface, WSGI。然后route()装饰器用于指定URL的触发函数将触发函数绑定到指定URL。最后函数返回在浏览器中显示的内容。
2运行Python程序。
运行程序server.py在控制台显示如下的消息表明Web服务器已启动。
$ python server.py* Serving Flask app server
* Debug mode: off
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
* Running on http://127.0.0.1:5000/
(Press CTRLC to quit)3在浏览器中访问http://127.0.0.1:5000/。 这将对服务器发送GET请求该请求将返回相应的消息 127.0.0.1 - - [26/Apr/2023 21:42:13] “GET / HTTP/1.1” 200 - 127.0.0.1 - - [26/Apr/2023 21:42:13] “GET /favicon.ico HTTP/1.1” 404 - 2.3 绑定IP和端口
虽然flask命令可以启动一个本地服务器但是每次程序修改后都需要手动重启服务器。将应用对象的debug属性设为True可以启用Debug模式。 app.run(debugTrue) 在Debug模式下修改应用代码之后服务器会自动重启当应用出错时还会提供一个调试器。重新运行Python程序在控制台将显示如下的消息。
* Serving Flask app server2
* Debug mode: on * Restarting with stat* Debugger is active!* Debugger PIN: 110-148-621Flask默认的绑定IP为127.0.0.1端口为5000。通过设置参数host可以自定义IP地址设置参数port可以自定义端口。 app.run(host‘0.0.0.0’) 重新运行Python程序在控制台将显示如下的消息。 * Running on all addresses (0.0.0.0)* Running on http://127.0.0.1:5000* Running on http://192.168.3.249:5000这样就可以从局域网内的其他设备执行请求。例如从连接局域网的手机访问IP地址http://192.168.3.249:5000将对服务器发送GET请求并在手机浏览器中显示网页内容。 2.4 Flask路由
Web框架使用路由技术直接访问所需的页面而无需从主页导航。
Flask中使用route()装饰器将应用程序的URL绑定到函数可以实现路由访问。例如app.route(/hello)将URL/hello规则绑定到hello_world()函数。
app.route(/hello)
def hello_world():return hello world用户访问 http://localhost:5000/hello将在浏览器中显示hello_world()函数的输出。 application对 象的add_url_rule()函数也可用于将URL与函数绑定如上例所示使用route()装饰器的目的也由以下表示
def hello_world():return hello world
app.add_url_rule(/, hello, hello_world)通过向规则参数添加变量部分可以动态构建URL。此变量部分标记为converter:variable_name。它作为关键字参数传递给与规则相关联的函数。 例如在下面的例程中route()装饰器的规则参数包含附加到URL’/hello’的name。
from flask import Flaskapp Flask(__name__)app.route(/)
def hello():return Hello world!app.route(/user)
def hello_user():return Hello user!app.route(/hello/name)
def hello_name(name):return Hello %s! % nameif __name__ __main__:app.run(host0.0.0.0)如果在浏览器中输入http://localhost:5000/hello/youcans作为URL则’youcans’ 将作为参数提供给 hello_name()函数。该请求将返回相应的消息 * Running on all addresses (0.0.0.0)* Running on http://127.0.0.1:80* Running on http://192.168.3.249:80
Press CTRLC to quit
127.0.0.1 - - [27/Apr/2023 09:06:27] GET /hello/youcans HTTP/1.1 200 -
127.0.0.1 - - [27/Apr/2023 09:06:27] GET /favicon.ico HTTP/1.1 404 -【本节完】 下节内容使用OpenCVFlask部署Web应用程序。 欢迎关注『OpenCV DNN Youcans』系列持续更新中 版权声明 youcansxupt 原创作品转载必须标注原文链接 【OpenCV DNN】Flask 视频监控目标检测教程 01 (https://blog.csdn.net/youcans/article/details/130785571) Copyright 2023 youcans, XUPT Crated2023-05-20