简单介绍
Flask是一个基于Python实现的Web开发‘微’框架,和Django一样,也是基于MVC设计模式的Web框架。
官方文档:http://flask.pocoo.org/docs/0.12/
中文文档:http://docs.jinkan.org/docs/flask
Flask依赖三个库:
Jinja2 模版引擎
Werkzeug WSGI工具集
Itsdangerous 基于Django的签名模块
Flask流行的主要原因:
有非常齐全的官方文档,上手非常方便
有非常好的扩展机制和第三方扩展环境,自己实现扩展也很容易
社区活跃度非常高
微型框架的形式给开发者更大的选择空间
MVC设计模式:
一种软件设计典范,用一种业务逻辑,使数据,界面显示分离的方法组织代码,
将业务逻辑聚集到一个部件里面,在改进和个性化定制界面与用户交互的同时,不需要重新编写业务逻辑。
MVC被独特的发展起来用于映射传统的输入,处理和输出功能在一个逻辑的图形化界面结构中。核心思想是:解耦合。
优点:降低各个模块之间的耦合性,方便变更。更容易重构代码,最大程度实现了代码的重用。
MVC(Model、View、Controller)
Model:用于封装与应用程序的业务逻辑相关的数据及对数据的处理方法,是Web应用程序中用于处理应用程序的数据逻辑部分,
Model通常只提供功能性的接口。通过这些接口可以获取Model的所用功能
View:负责数据的显示和呈现,View是对用户的直接输出
Controller:负责从用户端收集用户的输入,可以看成提供View的反向功能,主要处理用户交互
MTV设计模式:
本质上与MVC没有什么区别,也是各组件之间为了保持松耦合关系,只是定义上有些不同
Model:负责业务对象与数据库(ORM)的对象
View:负责业务逻辑,并在适当的时候调用Model和Template
Template:负责把页面展示给用户
MVC与MTV关系
-
负责和数据交互的
-
View == Template:视图 == 模板、负责数据展示
-
Controller == Views:控制器 == 视图函数、接收用户输入、调用数据 Model、展示数据
开发环境
开发环境:Mac、Windows、Linux。三种主流的操作系统都可以支持,一般选择LInux系统
Linux:安装Linux系统、安装Linux虚拟机、购买阿里云服务。Ubuntu、RedHab、CentOS、.....
软件介绍:
pip:Python的包管理工具
virtualenv:python专属的虚拟环境,用来保持一个独立的环境
Mysql:常用的数据库之一
软件安装:
安装pip:apt install python-pip
安装virtualenv:pip install virtualenv
安装虚拟环境配置文件:pip install virtualenvwrapper
配置虚拟环境:mkdir ~/.virtualenvs。在用户目录下创建一个隐藏文件夹,编辑环境变量
添加文件路径:vim .bashrc。
末行添加: export WORKON_HOME=/root/.virtualenvs :
source /usr/local/bin/virtualenvwrapper.sh :在环境变量中导出虚拟环境的路径
激活虚拟环境管理脚本:
环境搭建
- 创建:mkvirtualenv 虚拟环境名
- 删除:rmvirtualenv 虚拟环境名
- 进入:workon 虚拟环境名
- 退出:deactivate
- pip install xxx:安装xxx依赖包
- pip list:查看所有依赖包
- pip freeze:查看虚拟环境新安装的包
- pip install mysql-server:安装mysql服务器
- pip install mysql:安装mysql
- mysql -uroot -p密码:登陆mysql
简单拆分
- manage.py
1 from flask_script import Manager 2 from app import create_app 3 4 """ 5 flask 项目结构 6 0。 将 app.py 重命名为 manage.py 7 1。 在 项目目录下创建 app 包 8 2。 将 status / templetes 移动到 app 保中 9 3。 在 app/__init__.py 中创建 create_app 函数,用于返回 flask 实例 10 def create_app(): 11 app = Flask(__name__) 12 return app 13 4。 在manage.py 中,通过 create_app 函数,获取 Flask 实例 14 app = create_app() 15 5. 在 app 包中创建 views.py 和 models.py 16 """ 17 18 """ 19 蓝图的使用(Blueprint): 20 注意:蓝图的实例化必须和蓝图所管理的视图函数放在一起 21 22 1。在 views.py 中创建 Blueprint 23 bp = Blueprint("user",__name__) 24 25 2。 在视图函数中使用蓝图(通过蓝图来管理我们的视图函数) 26 @bp.route("/user/") 27 def user(): 28 return "user view" 29 30 3。在 Flask 实例中注册项目的蓝图 31 app.register_blueprint(views.bp) 32 33 """ 34 35 app = create_app() # 用一个函数创建app实例 36 manager = Manager(app=app) # 将flask的app实例交给flask-scirpt的Manager来管理 37 38 39 if __name__ == '__main__': 40 manager.run()
- app/__init__.py
1 from flask import Flask 2 from app import views 3 4 def create_app(): 5 app = Flask(__name__) # 实例化 Flask对象 6 app.register_blueprint(views.bp) # 将蓝图注册到app上 7 return app # 返回出去Flask实例
- app/views
1 from flask import Blueprint 2 3 # 用蓝图管理路由,规划url。参数("蓝图名字",__name__)。 注意⚠️:蓝图必须和蓝图管理的视图在一个文件中,不然不能使用。 4 bp = Blueprint("blue",__name__) 5 6 @bp.route('/') 7 def hello_world(): 8 return 'Hello World!' 9 10 # 带参路由 11 @bp.route("/index/<name>") 12 def index(name): 13 return