flask应用框架

flask 简介

Flask是一个用Python编写的Web应用程序微型框架,基于Werkzeug WSGI工具包和Jinja2模板引擎。
Werkzeug是一个WSGI(Web Server Gateway Interface,Web服务器网关接口WSGI))工具包,实现了请求、响应对象等,用于构建web框架。jinja2是Python的一个流行的Web模板引擎,将模板与特定数据源组合以呈现动态网页。

flask 基础框架

flask主要用于快速的web 服务器搭建。如下图,

  • 当用户访问URL,浏览器生成对应的http请求发向web服务器
  • web 服务器(flask搭建)接收到请求, flask可根据请求的URL 执行对应的视图函数,获取返回值生成响应
  • 响应经过web服务器转换生成http响应,并传递到客户端浏览器,浏览器经过html/css/javascript解析渲染后呈现给用户。
    在这里插入图片描述

flask 安装及使用

示例中环境为ubuntu 16.04 +python2
使用pip 安装

pip install flask

如下示例,可通过http://yourIP:5001/hello 与http://yourIP:5001/index 登录获取回显

from flask import Flask
app = Flask(__name__)        #实例化flask

@app.route('/hello')         #hello路由函数
def hello():
    return 'hello world'
@app.route('index')       #index 路由函数
 def index():
     return 'index page'
 if __name__ == ‘__main__’:
     app.run(host = '0.0.0.0', port = '5001', debug = True)         #启动flask

示例中,通过在单个文件中定义多个路由函数能实现不同页面的请求回显。 但针对业务比较复杂的项目,在单文件下处理route 会使得维护变得困难。在这种情况下, 很显然需要对flask 进行模块化拆分,flask 中使用蓝图可实现该需求。

蓝图理解及应用

一个较为完整的flask 包含了前台模板(html)、静态文件(img等)、视图(route)函数。蓝图可以认为将一个大型flask 根据业务划分成不同的小型flask,各自维护一套模块、静态文件、视图函数等,即蓝图是一个模块化的类。

  • 创建蓝图对象,并注册蓝图路由
    demo1.py
from flask import Blueprint
demo1 = Blueprint('demo1',__name__,template_folder='templates')

@demo1.route('/')
def index ():
     return ‘blueprint demo1’

demo2.py

from flask import Blueprint
demo2 = Blueprint('demo2',__name__,template_folder='templates')
@demo2.route('/')
def index():
    return 'blueprint demo2'

  • 在flask实例中注册蓝图
app = Flask(__name__)
app.register_blueprint(more.more,url_prefix='/demo1')
app.register_blueprint(more.more,url_prefix='/demo2')

如下为应用蓝图后的flask项目开发目录


 1.  flask-project-demo/
 2.  |-config.py               #环境配置                       
 3.  |-manage.py               #flask 启动文件
 4.  |-demo/                   
 5.  |    |-__init__.py
 6.  |    |- scripts/          # 后台源代码包
 7.  |          |-__init__.py
 8.  |          |-test1.py     #示例1
 9.  |          |-test2.py     #示例2
 10.  |    |-views/            #flask 视图函数
 11. |          |-__init__.py 
 12. |          |-demo1.py     #示例1
 13. |          |-demo2.py     #示例2
 14. |    |-static/            
 15. |          |-js/          #js文件目录
 16. |          |-css/         #css文件目录
 17. |          |-img/         #图片目录
 18. |    |-templates/         #前台页面模板目录
 19. |          |-demo1.html   #示例1
 20. |          |-demo2.html    #示例2
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值