python web

为什么要用Web框架?

web网站发展至今,特别是服务器端,涉及到的知识、内容,非常广泛。这对程序员的要求会越来越高。如果采用成熟,稳健的框架,那么一些基础的工作,比如,网络操作、数据库访问、会话管理等都可以让框架来处理,那么程序开发人员可以把精力放在具体的业务逻辑上面。使用Web框架开发Web应用程序可以降低开发难度,提高开发效率。

总结一句话:避免重复造轮子。
在这里插入图片描述

框架

Web应用程序。Web应用程序 (World Wide Web)诞生最初的目的,是为了利用互联网交流工作文档。在这里插入图片描述
一切从客户端发起请求开始。

  1. 所有Flask程序都必须创建一个程序实例。
  2. 当客户端想要获取资源时,一般会通过浏览器发起HTTP请求。
  3. Web服务器使用一种名为WEB服务器网关接口的WSGI(Web Server Gateway
    Interface)协议,把来自客户端的请求都交给Flask程序实例。
  4. Flask使用Werkzeug来做路由分发(URL请求和视图函数之间的对应关系)。根据每个URL请求,找到具体的视图函数。

在Flask程序中,路由一般是通过程序实例的装饰器实现。

  1. 通过调用视图函数,获取到数据后,把数据传入HTML模板文件中
  2. 模板引擎负责渲染HTTP响应数据
  3. 然后由Flask返回响应数据给浏览器,最后浏览器显示返回的结果。

Django

Python Web框架里比较有名当属Django,Django功能全面,它提供一站式解决方案,集成了MVT(Model-View-Template)和ORM,以及后台管理。

但是缺点也很明显,它偏重。就像是一个装潢好的房子,它提供好了你要用的东西,直接拿来用就可以。

Django 本身基于 MVC 模型,即 Model(模型)+ View(视图)+ Controller(控制器)设计模式。

MVC 与 MTV模型

MVC

MVC 模式(Model–view–controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。

MVC 以一种插件式的、松耦合的方式连接在一起。

  • 模型(M)- 编写程序应有的功能,负责业务对象与数据库的映射(ORM)。
  • 视图(V)- 图形界面,负责与用户的交互(页面)。
  • 控制器(C)- 负责转发请求,对请求进行处理。

简易图:
在这里插入图片描述
用户操作流程图
在这里插入图片描述

MTV

Django 的 MTV 模式本质上和 MVC 是一样的,也是为了各组件间保持松耦合关系,只是定义上有些许不同,Django 的 MTV 分别是指:

  • M 表示模型(Model):编写程序应有的功能,负责业务对象与数据库的映射(ORM)。
  • T 表示模板 (Template):负责如何把页面(html)展示给用户。
  • V 表示视图(View):负责业务逻辑,并在适当时候调用 Model和 Template。

除了以上三层之外,还需要一个 URL 分发器,它的作用是将一个个 URL 的页面请求分发给不同的 View 处理,View 再调用相应的 Model 和 Template,MTV 的响应模式如下所示:

简易图:

在这里插入图片描述
用户操作流程图:
在这里插入图片描述
解析:

用户通过浏览器向我们的服务器发起一个请求(request),这个请求会去访问视图函数:

  • a.如果不涉及到数据调用,那么这个时候视图函数直接返回一个模板也就是一个网页给用户。
  • b.如果涉及到数据调用,那么视图函数调用模型,模型去数据库查找数据,然后逐级返回。

Flask

Flask相对于Django而言是轻量级的Web框架。和Django不同,Flask轻巧、简洁,通过定制第三方扩展来实现具体功能。

可定制性,通过扩展增加其功能,这是Flask最重要的特点。Flask的两个主要核心应用是Werkzeug和模板引擎Jinja。

Flask扩展包:

  • Flask-SQLalchemy:操作数据库;

  • Flask-migrate:管理迁移数据库;

  • Flask-Mail:邮件;

  • Flask-WTF:表单;

  • Flask-script:插入脚本;

  • Flask-Login:认证用户状态;

  • Flask-RESTful:开发REST API的工具;

  • Flask-Bootstrap:集成前端Twitter

  • Bootstrap框架; Flask-Moment:本地化日期和时间;

比较

  • django:

    特点: 大而全, 自带的功能特别特别特别的多
    不足之处: 有时候过于笨重

  • flask:

    特点: 小而精, 自带的功能特别特别特别的少
    第三方的模块特别特别特别的多, 如果将flask第三方的模块加起来完全可以盖过django,并且也越来越像django
    不足之处: 比较依赖于第三方的开发者

现成的框架

强推10个开源的Web后台系统框架,接私活必备!

AdminLTE快速入门和使用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值