Flask框架(一)

Flask框架简介

Flask是一个使用 Python 编写的轻量级 Web 应用框架。其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2 。Flask使用 BSD 授权。
Flask也被称为 “microframework” ,因为它使用简单的核心,用 extension 增加其他功能。Flask没有默认使用的数据库、窗体验证工具。

Flask与Django的区别

(1)Flask

  • Flask确实很“轻”,不愧是Micro Framework,从Django转向Flask的开发者一定会如此感慨,除非二者均为深入使用过
  • Flask自由、灵活,可扩展性强,第三方库的选择面广,开发时可以结合自己最喜欢用的轮子,也能结合最流行最强大的Python库
  • 入门简单,即便没有多少web开发经验,也能很快做出网站
  • 非常适用于小型网站
  • 非常适用于开发web服务的API
  • 开发大型网站无压力,但代码架构需要自己设计,开发成本取决于开发者的能力和经验
  • 各方面性能均等于或优于Django
  • Django自带的或第三方的好评如潮的功能,Flask上总会找到与之类似第三方库
  • Flask灵活开发,Python高手基本都会喜欢Flask,但对Django却可能褒贬不一
  • Flask与关系型数据库的配合使用不弱于Django,而其与NoSQL数据库的配合远远优于Django
  • Flask比Django更加Pythonic,与Python的philosophy更加吻合

(2)Django

  • Django太重了,除了web框架,自带ORM和模板引擎,灵活和自由度不够高
  • Django能开发小应用,但总会有“杀鸡焉用牛刀”的感觉
  • Django的自带ORM非常优秀,综合评价略高于SQLAlchemy
  • Django自带的模板引擎简单好用,但其强大程度和综合评价略低于Jinja
  • Django自带ORM也使Django与关系型数据库耦合度过高,如果想使用MongoDB等NoSQL数据,需要选取合适的第三方库,且总感觉Django+SQL才是天生一对的搭配,Django+NoSQL砍掉了Django的半壁江山
  • Django目前支持Jinja等非官方模板引擎
  • Django自带的数据库管理app好评如潮
  • Django非常适合企业级网站的开发:快速、靠谱、稳定
  • Django成熟、稳定、完善,但相比于Flask,Django的整体生态相对封闭
  • Django是Python web框架的先驱,用户多,第三方库最丰富,最好的Python库,如果不能直接用到Django中,也一定能找到与之对应的移植
  • Django上手也比较容易,开发文档详细、完善,相关资料丰富

建立一个Flask框架的虚拟环境

1. 虚拟环境的作用

Python的虚拟环境可以使一个Python程序拥有独立的库library和解释器interpreter,而不用与其他Python程序共享统一个library和interpreter。虚拟环境的好处是避免了不同Python程序间的互相影响(共同使用global library 和 interpreter),例如程序A需要某个库的1.0版本,而程序B需要同样这个库的2.0版本,如果程序B执行则A就不能执行了。

2. 创建一个虚拟环境

1) 安装virtualenv

pip install virtualenv

2) 创建一个虚拟环境

virtualenv --no-site-package 虚拟环境的名称

img

建立好了虚拟环境,可以用下面的命令进入该虚拟环境的Script文件夹,在命令行输入activate进入虚拟环境
img

查看当前虚拟环境中已有的库

pip freeze

img

注:新建的虚拟环境不存在已经安装好的库

3) 安装flask

pip install flask

第一个Flask项目

在这里我们直接使用PyCharm来创建第一个Flask项目

创建的时候注意,选择好自己创建的虚拟环境(选择Script文件中pyhon.exe)
img

创建好了,这就是我们的第一个flask项目

img

在命令行使用下面的命令运行一下这个项目

python practiceflask.py

img

这样运行后,默认debug模式为False,端口号为5000, 如果想要改debug与端口,需要在app.run()增加参数
W
app.run(debug=True, port=8000)

这样我们的第一个最简单的flask项目就完成了,进入127.0.0.1:5000, 页面显示Hello,World!

猜你喜欢

转载自blog.csdn.net/qgy709830355/article/details/80407407
今日推荐