文章目录

目录

文章目录

前言

一、Flask是什么

二、Flask基础

1.路由规则

2、Flask-Cors 解决跨域问题

3、Flask-Uploads 接受浏览器上传的文件

4、Flask蓝图功能

4.1 什么是flask蓝图

4.2 创建一个简单的蓝图例子

5、Flask模板语言

5.1 页面渲染

5.2 模板中的if for 语句

总结



前言

由于目标检测与追踪都是使用的python语言,但是我的整体框架是用的springboot。若将两者结合会比较困难,所以我选择使用flask框架来包装目标检测与追踪代码。然后最终部署到docker中,利用springboot来调用其webAPI。

一、Flask是什么

Flask是一个用Python编写的Web应用程序轻型框架,相较于Django更加容易掌握也更加灵活,并且支持MVC模型。由于本项目的不需要繁杂的操作,只需要简单的调用即可,所以这里选择更容易上手开发的flask。

二、Flask基础

1.路由规则

Flask中的 route()装饰器 装饰器用于将URL绑定到函数。

@app.route('/hi')
def hi():  # put application's code herereturn 'hi World!'if __name__ == '__main__':app.run()

这里,URL /hello 规则绑定到 hi() 函数。 因此,如果用户访问URL: http://localhost:5000/hello ,就会调用  hi() 函数,这个函数中的执行的结果输出将在浏览器中呈现。

@app.route('/hi', methods=['POST'])
def hi():  # put application's code herereturn 'hi World!'

也可以在后边加上methods=['POST'],来表示只接受POST请求,其他的GET请求等也可以按照此方式来应用

@app.route('/user/<id>')
def hello_world(id):  # put application's code hereif id == '1':return 'python'if id == str(2):return 'java'if int(id) == 3:return 'flask'return 'Hello World!'

注意此处传入的id为字符串,需要转换后进行比较。

2、Flask-Cors 解决跨域问题

pip install flask-cors

3、Flask-Uploads 接受浏览器上传的文件

随着业务代码的增加,将所有代码都放在app.py文件中,是非常不合适的。这不仅会让代码阅读变得困难,而且会给后期维护带来麻烦。所以我们按照模块划分WEB函数。

把不同功能的module分开。可以让应用模块化,针对大型应用。

4、Flask蓝图功能

4.1 什么是flask蓝图

  • 随着 Flask 程序越来越复杂,需要对程序进行模块化的处理
  • 蓝图 (Blueprint) 是 Flask 程序的模块化处理机制
  • 它是一个存储视图方法的集合
  • Flask 程序通过 Blueprint 来组织 URL 以及处理请求

4.2 创建一个简单的蓝图例子

创建下方文件

并且在app.py文件中添加框出的代码

启动程序:

5、Flask模板语言

Flask支持动态页面技术,在后台渲染出动态的HTNML页面

Jinja2是python下一个被广泛应用的模板引擎,语法简单。

Flask中的模板文件存放在templates目录,图片,样式和脚本放在static目录中

5.1 页面渲染

WEB方法中,render_template()函数用来把模板文件渲染成动态的html

@user.route('/user/info')
def info():return render_template("user_info.html",name="aaa",age=29,sex="男")

模板文件中,双大括号{{ 变量名 }} 可以对模板进行插值

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>info</title>
</head>
<body><p>name:{{ name }}</p><p>age:{{ age }}</p><p>sex:{{ sex }}</p></body>
</html>

结果:

5.2 模板中的if for 语句

<!DOCTYPE html>
<html>
<head><title>test</title>
</head>
<body><li>{% for gift in gifts.values() %}{% if gift|length > 5 %}<h1>{{gift}}</h1>{% else %}<h3>{{gift}}</h3>{% endif %}{% endfor %}</li>
</body>
</html>

在模板文件中,使用if判断,语法如下:

{% if 判断条件 %}

  满足条件执行的语句

{% else %}

  不满足执行的语句

{% endif %}

注意,和python的if语句不一样,模板中的if语句结束时,需要有{% endif %}

在模板中,使用for循环语句如下:

{% for x in xx %}

  执行的代码

{% endfor %}

注意,和python的for语句不一样,模板中的for语句结束时,需要有{% endfor %}

总结

Flask框架学习(持续更新)相关推荐

  1. Flask 框架学习_1

    Flask 框架学习_1 Flask 框架 与 Django框架区别 Flask: 小巧.灵活,让程序员自己决定定制哪些功能,非常适用于小型网站. 对于普通的工人来说将毛坯房装修为城市综合体还是很麻烦 ...

  2. IRS中波束赋形设计源代码之AO算法学习(持续更新,多多交流)

    IRS中波束赋形设计源代码之AO算法学习(持续更新,多多交流) 论文:Weighted Sum-Rate Maximization for Reconfigurable Intelligent Sur ...

  3. JS小型游戏框架coquette学习(持续更新)

    2019独角兽企业重金招聘Python工程师标准>>> coquette游戏框架学习 框架地址:https://github.com/maryrosecook/coquette 框架 ...

  4. 优秀的Android开源框架(持续更新)

    开源是软件发展的趋势,越来越多的人投入到开源世界中去.我们可以从开源世界中获得很多有益的东西,本着不重复造轮子的精神,我们应该充分利用这些开源项目的成果.本文会持续更新涌现出来的优秀开源框架. UI ...

  5. 谈谈Python的Flask框架学习与福利分享

    在秋天中暑 熬过了炎炎夏日,却在这个初秋的日子中暑了.本来休息不好,今天又跑了一天,结果回来坐车吹空调冷热交替的崩溃了... 脑壳疼 回家就躺倒睡了一觉,感觉舒服点了,起床开电脑却又不知道学点什么,想 ...

  6. 【Python】flask框架学习 flask框架的基本使用

    flask框架是什么? Flask 是一个轻量级的 Web 框架,用于构建 Web 应用程序.它基于 Python 编程语言和 Werkzeug 工具包,提供了简单易用的 API,可以轻松地创建 RE ...

  7. Flask框架学习整理——从零开始入门Flask

    文章目录 Flask框架 一. 简介 二. 概要 三. 知识点(附代码) 1. Flask基础入门 1)路由route的创建: 2)endpoint的作用 3)request对象的使用 4)请求钩子b ...

  8. VBScript脚本语言学习(持续更新)

    这个语言非常简单...花了我几个小时就基本上掌握了.由于它比批处理强大很多,所以我很喜欢.用于日常管理我的Windows操作系统.下面是我的学习记录下来的重点和总结. A. 基础知识 1. Cbool ...

  9. Python开发-flask框架学习

    最近闲来无事,帮别人一起看看python3与flask,据说他想搞个登录注册的小demo,然后就给看了下,顺便简单的跟他说明了下.本文只是记录我在给别人讲解怎么使用python3与flask还有mon ...

最新文章

  1. 利用Javadoc工具生成api文档
  2. python3 获取文件夹中的文件列表
  3. 安卓性能测试之 adb shell 常用命令
  4. C# 深入浅出 委托与事件
  5. JAVA计算机存储单元概述及数据类型
  6. PouchContainer 富容器技术解析
  7. python基础语言法则_python语言基础3
  8. idea+springboot+mongodb的实战使用分享
  9. BZOJ4033 [HAOI2015]树上染色 【树形dp】
  10. html中table美化,漂亮的css table样式
  11. 机器学习 泛化误差和偏差-方差
  12. 网络会议openmeetings下的openmeetings-util文件分析3
  13. VMware 8安装Mac OS X 10.7 Lion
  14. 128、H3C交换机恢复出厂和各种基本配置
  15. 【数据库实验】镶嵌查询
  16. mysql 值很少的索引_关于 Mysql 字段值分布很少的字段要不要加索引的问题.
  17. Android 安卓动画 属性动画 - 组合动画
  18. MySQL 生成累计乘积
  19. 一个神器的插件:Piti
  20. 如何从一个文件夹中批量读取图片名字有规则

热门文章

  1. Php解压pako,基于pako.js实现gzip的压缩和解压功能示例
  2. css3新增属性有哪些?css3中常用的新增属性总结
  3. 大学生压力主要来源于社会就业(转)
  4. 关于TransparentBlt和AlphaBlend的不同
  5. zsh: corrupt history file /home/floodlight/.zsh_history
  6. 使用Java的JDK自带工具对中文汉字进行转码
  7. 大数据的应用——用户画像
  8. python读取视频里面爱豆出现的时间_计算任意视频中各人物的出镜时间(附Python实现)...
  9. Chapter6.1:线性系统的校正方法
  10. Realm数据库使用教程(一):Realm配置和Stetho配置