Flask框架学习(持续更新)
文章目录
目录
文章目录
前言
一、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框架学习(持续更新)相关推荐
- Flask 框架学习_1
Flask 框架学习_1 Flask 框架 与 Django框架区别 Flask: 小巧.灵活,让程序员自己决定定制哪些功能,非常适用于小型网站. 对于普通的工人来说将毛坯房装修为城市综合体还是很麻烦 ...
- IRS中波束赋形设计源代码之AO算法学习(持续更新,多多交流)
IRS中波束赋形设计源代码之AO算法学习(持续更新,多多交流) 论文:Weighted Sum-Rate Maximization for Reconfigurable Intelligent Sur ...
- JS小型游戏框架coquette学习(持续更新)
2019独角兽企业重金招聘Python工程师标准>>> coquette游戏框架学习 框架地址:https://github.com/maryrosecook/coquette 框架 ...
- 优秀的Android开源框架(持续更新)
开源是软件发展的趋势,越来越多的人投入到开源世界中去.我们可以从开源世界中获得很多有益的东西,本着不重复造轮子的精神,我们应该充分利用这些开源项目的成果.本文会持续更新涌现出来的优秀开源框架. UI ...
- 谈谈Python的Flask框架学习与福利分享
在秋天中暑 熬过了炎炎夏日,却在这个初秋的日子中暑了.本来休息不好,今天又跑了一天,结果回来坐车吹空调冷热交替的崩溃了... 脑壳疼 回家就躺倒睡了一觉,感觉舒服点了,起床开电脑却又不知道学点什么,想 ...
- 【Python】flask框架学习 flask框架的基本使用
flask框架是什么? Flask 是一个轻量级的 Web 框架,用于构建 Web 应用程序.它基于 Python 编程语言和 Werkzeug 工具包,提供了简单易用的 API,可以轻松地创建 RE ...
- Flask框架学习整理——从零开始入门Flask
文章目录 Flask框架 一. 简介 二. 概要 三. 知识点(附代码) 1. Flask基础入门 1)路由route的创建: 2)endpoint的作用 3)request对象的使用 4)请求钩子b ...
- VBScript脚本语言学习(持续更新)
这个语言非常简单...花了我几个小时就基本上掌握了.由于它比批处理强大很多,所以我很喜欢.用于日常管理我的Windows操作系统.下面是我的学习记录下来的重点和总结. A. 基础知识 1. Cbool ...
- Python开发-flask框架学习
最近闲来无事,帮别人一起看看python3与flask,据说他想搞个登录注册的小demo,然后就给看了下,顺便简单的跟他说明了下.本文只是记录我在给别人讲解怎么使用python3与flask还有mon ...
最新文章
- 利用Javadoc工具生成api文档
- python3 获取文件夹中的文件列表
- 安卓性能测试之 adb shell 常用命令
- C# 深入浅出 委托与事件
- JAVA计算机存储单元概述及数据类型
- PouchContainer 富容器技术解析
- python基础语言法则_python语言基础3
- idea+springboot+mongodb的实战使用分享
- BZOJ4033 [HAOI2015]树上染色 【树形dp】
- html中table美化,漂亮的css table样式
- 机器学习 泛化误差和偏差-方差
- 网络会议openmeetings下的openmeetings-util文件分析3
- VMware 8安装Mac OS X 10.7 Lion
- 128、H3C交换机恢复出厂和各种基本配置
- 【数据库实验】镶嵌查询
- mysql 值很少的索引_关于 Mysql 字段值分布很少的字段要不要加索引的问题.
- Android 安卓动画 属性动画 - 组合动画
- MySQL 生成累计乘积
- 一个神器的插件:Piti
- 如何从一个文件夹中批量读取图片名字有规则
热门文章
- Php解压pako,基于pako.js实现gzip的压缩和解压功能示例
- css3新增属性有哪些?css3中常用的新增属性总结
- 大学生压力主要来源于社会就业(转)
- 关于TransparentBlt和AlphaBlend的不同
- zsh: corrupt history file /home/floodlight/.zsh_history
- 使用Java的JDK自带工具对中文汉字进行转码
- 大数据的应用——用户画像
- python读取视频里面爱豆出现的时间_计算任意视频中各人物的出镜时间(附Python实现)...
- Chapter6.1:线性系统的校正方法
- Realm数据库使用教程(一):Realm配置和Stetho配置