Flask 基本流程
一、Flask简介
Flask是一个基于Python实现的web开发'微'框架。 Flask和Django 一样,也是一个基于MVC设计模型的Web框架
官方文档: http://flask.pocoo.org/docs/0.12/
中文文档: http://docs.jinkan.org/docs/flask/
二、Flask流行的原因
1.有非常齐全的官方文档,
2.上手快 有非常好的扩展机制和第三方扩展环境,工作中常用的软件都有对应的扩展,自己动 手扩展也很容易。 3.社区活跃都非常高
4.微型框架的形式给开发者更大的选择空间。
三、依赖核心的三个库
1.jinja2(模板引擎)
2.Werkzuge(WSGI工具集)
3.Itadangerous(基本Django的签名模板)
四、MVC模型
一种软件设计架构
1.model 数据封装,数据抽象,操作数据的入口
2.view 视图,主要用来呈现给用户
3.controller 控制器 核心理念 解耦
五、MTV模型
1.model
2.template 模板 用来显示数据
3.views 视图函数 接受请求,协调模型和模板
六、Flask项目(Flask使用)
安装 pip install flask (--user)
sudo pip install flassk
创建项目(Hello Flask)
项目结构
static(静态资源文件)
template(模板)
xxxx.py(整个项目的文件,项目的入口)[上帝文件]
代码结构
from flask import Flask
app = Flask(__name__)
@app.route('/') def hello_world():
return 'Hello World!'
if __name__ == '__main__':
app.run()
运行 项目启动的参数
debug 是否开启调试模式,开启后修改python代码后会自动重启
threaded 是否开启多线程
port 启动指定服务器端口号
host 主机,默认是127.0.0.1,指定为0.0.0.0代表本机IP
reload 自动重新加载
Flask请求流程
路由app.route('/')[blue.route('/')]
视图函数 视图函数和models交互
模型返回数据到视图函数
视图函数渲染模板
模板返回给用户
请求流程
七、插件(扩展库)
flask-script(实现命令行参数就受)
安装插件
pip install flask-script
官方文档:http://flask-script.readthedocs.io/en/latest/
命令启动项目(类似Django)
python xxx.py runserver -r -d (自动重新加载,调试模式)
python xxx.py runserver -- help (查看帮助文档,有哪些参数)
python xxx.py runserver -p 8000(端口号)
python xxx.py runserver -d (调试模式)
python xxx.py runserver -r (自动重新加载)
python xxx.py runserver -h '0.0.0.0' (主机IP)
调整代码
from flask import Flask
from flask_script import Manager
app = Flask(__name__)
manager = Manager(app)
(使用app对象初始化Manager)
@app.route('/')
def hello_world():
return 'Hello World!' if __name__ == '__main__': manager.run()
flask-blueprint(规划urls)
安装 pip install flask-blueprint
官方文档:http://flask.pocoo.org/docs/0.12/api/
初始化 (视图中) views.py
bule = Blueprint('blue(蓝图名)',__name__)
调用蓝图(视图中)
views.py .route('/')
@ blue def hello_world():
return 'Hello World !'
路由注册 创建app(在 __init___.py中)
from flask imprt Flask
def createa_app():
app = Flask__name__)
return app
在注册路由( __init___.py中)
app.register_blueprint(blueprint=blue)
八、项目简单拆分(蓝图概念)
项目的简单拆分(类似Django结构)
蓝图概念 蓝图(宏观规划)
蓝图是一种规划,主要用来规划urls(路由)
安装 pip install flask-blueprint (蓝图是一种规划,主要用来规划urls(路由))
官方文档:http://flask.pocoo.org/docs/0.12/api/
项目简单拆分
规范的项目结构
xxxApp
static(静态资源文件)
tempaltes(模板资源) __init__.py()(初始化文件)
from flask import Flask
from myApp.views import blue
def create_app():
app = Flask(__name__)
# blue(蓝图)注册
app.register_blueprint(blueprint=blue)
return app
views.py(视图函数)
from flask import Blueprint
blue = Blueprint('blue',__name__)(初始化蓝图)
@blue.route('/')
def hello_world():
return 'Hello World!'
注意:views.py 直接写是不会生效的,需要引入蓝图来解决这个问题
models.py(模型)
manage.py (项目的入口)
from flask_script import Manager
from myApp import create_app
app = create_app()
manager = Manager(app)
if __name__ == '__main__':
manager.run()