Flask 基本流程

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 基本流程_第1张图片

七、插件(扩展库)

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/

项目简单拆分

Flask 基本流程_第2张图片

规范的项目结构

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()

你可能感兴趣的:(Flask 基本流程)