大家好,欢迎来到IT知识分享网。
一、前言
菜鸡开始学习Flask框架了,参考:http://www.imooc.com/wiki/flasklesson/flaskintro.html
Python比较主流的框架有:Flask,Django,FastApi,之前有简单了解过Django,感觉太重了没有深入学下去,现在准备了解下Flask框架。
什么是web开发框架?Web 开发框架是用于进行 Web 开发的一套软件架构,Web 框架为 Web 应用程序提供了基础的功能。开发人员在 Web 框架的基础上实现自己的业务逻辑,基于 Web 框架开发应用,开发人员只需要专注应用的业务逻辑,非业务逻辑的基础功能则由框架提供,从而提升开发效率。
二、Flask框架简介
1、Flask 简介
Flask 是一个轻量级的 Web 框架,使用 Python 语言编写,较其他同类型框架更为灵活、轻便且容易上手,小型团队在短时间内就可以完成功能丰富的中小型网站或 Web 服务的实现。
Flask 具有很强的定制性,用户可以根据自己的需求来添加相应的功能,在保持核心功能简单的同时实现功能的丰富与扩展,其强大的插件库可以让用户实现个性化的网站定制,开发出功能强大的网站。
2、 Flask 的特点
2.1 微框架
Flask 是一个 Python 实现的 Web 开发微框架,但是这个“微”并不代表着 Flask 功能比较简陋、有所欠缺。微框架中的 “微” 意味着:
- Flask 旨在保持核心简单而易于扩展;
- Flask 不会替用户做出太多决策,比如使用何种数据库;
- Flask 的选项(比如使用何种模板引擎) 通常有多个,用户很容易替换。
默认情况下,Flask 不包含数据库抽象层、模板引擎、身份认证或其它任何已有多种库可以胜任的功能,如下图所示。然而,Flask 支持用扩展来给应用添加这些功能,应用程序可以很方便的集成这些扩展。众多的扩展提供了数据库集成、表单验证、上传处理、各种各样的开放认证技术等功能。
2.2 约定优于配置
设计不好的框架通常需要多个配置文件,每一个都有许多设置选项,程序员需要记忆大量的参数配置。
但是 Flask 遵循约定优于配置(Convention Over Configuration),也称作按约定编程是一种软件设计范式。目的在于减少软件开发人员所需要做出的决定的数量,从而将开发变得简单,而又不失去其中的灵活性,开发人员仅仅需要规定应用中不符合约定的部分。
Flask 存在有众多的配置选项,但是在初始状况下,它们都有一个常用的默认值,并会遵循一些惯例。 例如:按照惯例,模板和静态文件分别存储在应用 Python 源代码树下的子目录 templates 和 static 里。虽然这个配置可以修改,但通常不必这么做,尤其是在刚开始学习的时候。
3、Flask 与 Django 的比较
3.1 两个框架的区别
其实两者最主要区别在于:Django 功能大而全,Flask 只包含基本的功能。
Django 采用一站式解决的思路,Django 集成有模板、表单、路由、认证、基本的数据库管理等内建功能,开发者不用在选择应用的基础设施上花费大量时间。
Django 就像是一个装潢好的房子,它提供了各种家具,直接入住即可。
Flask 相对于 Django 而言是轻量级的 Web 框架。和 Django 不同,Flask 只提供了最核心的功能,轻巧、简洁,通过定制第三方扩展来实现具体功能。
默认情况下,不包含数据库抽象、用户认证、表单验证、发送邮件等其它 Web 框架经常包含的功能。Flask 依赖用各种灵活的扩展(比如邮件 Flask Mail,用户认证 Flask Login,数据库 Flask SQLAlchemy)来给Web应用添加额外功能。
Flask 就像是一个没有装潢的房子,用户需要自己选择各种家具才可以入住。
3.2 新手入门推荐
Flask 是一个轻量级的 Web 框架,只提供核心服务,较其他同类型框架更为轻便且容易上手,适用于小型团队在短时间内就可以完成功能丰富的中小型网站。与之相比,Django 是一个重量级的 Web 框架,内置许多常用的扩展,这些功能是由官方和社区共同维护的,其健壮性高,有利于保障项目质量。
推荐新手学习 Flask 框架,可以先从 Flask 开始,后使用 Django 重构。因为如果直接上 Django,作为新手,面对 Django 内置的各种繁杂功能产生很多疑惑。
三、第一个Flask应用程序
1、安装 flask
Flask 是一个 Web 框架,使用它首先需要安装:pip3 install flask
安装完毕后,在 Python 的交互模式下,尝试导入 Flask 模块:import flask
如何查询本地flask版本?
如何升级本地的flask版本?
百度的命令是:easy_install -U Flask
不过我没升级成功,暂时看不懂原因,也没百度到。
2、一个最小的 Flask 应用
代码如下:
from flask import Flask # 实例化创建一个 Flask 应用,第一个参数是 Flask 应用的名称。__name__ 是一个标识 Python 模块的名字的变量 app = Flask(__name__) '''定义函数 hello_world,它返回一段 html 文本。 app.route(’/’) 返回一个装饰器,装饰器来为函数 hello_world 绑定对应的 URL, 当用户在浏览器访问这个 URL 的时候,就会触发这个函数,获取返回值。''' @app.route('/') def hello_word(): return '<b>Hello Word</b>' # 如果当前模块是主模块,则变量 __name__ 为 '__main__,此时调用 run() 方法启动 Flask 应用 if __name__ == '__main__': app.run()
运行该程序,在浏览器中输入 localhost:5000 或者 127.0.0.1:5000
,浏览器显示如下:
在控制台中,Flask 应用输出如下:
这样,我们就已经搭建好了一个最简单的 Flask 应用。
3、 修改监听地址和端口
上面说到要在浏览器中输入 localhost:5000
才能看到运行效果。其中 localhost 代表本地 IP 地址,你也可以把 localhost 改成 127.0.0.1,效果和 localhost 是一样的。那么 5000 代表什么呢?
其实 5000 是一个端口号,你可以把端口号理解为是门牌号。我们的电脑会为每一个应用程序划分运行区间,每一个运行区间的标识就是端口号,我们可以通过端口号来访问对应的应用程序,这和你在酒店根据门牌号找到房间是一个道理。
默认情况下,Flask 应用程序监听地址 127.0.0.1 和端口 5000。如果你不想让 Flask 程序运行在 5000 端口,也可以通过参数设置可以修改默认的监听地址和端口,比如我们想让 Flask 程序运行在一个比较吉利的端口 8888 上面,可以这样修改代码:
from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return '<b>Hello World</b>' if __name__ == '__main__': app.run(host = '0.0.0.0', port = 8888)
设定 app.run 的函数参数 host 为 ‘0.0.0.0’,表示监听每一个可用的网络接口;设定 app.run 的函数参数 port 为 8888,表示监听端口 8888。
在浏览器输入127.0.0.1:8889 或者 localhost:8889,浏览器显示如下
4、小结
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/32086.html