web2py是基于python的web框架,遵循MVC模式,并且不需要安装就可以编写你的project。它在安全性方面也做不少的工作,能自动处理许多可能导致安全漏洞的问题,同时它是唯一全面支持web2.0范例的框架,也有很好的后兼容性。

原则

Python编程通常遵循以下基本原则:

  • 不重复自己(DRY)。
  • 仅有一种实现方式。
  • 明确比含蓄更好。

在web2py中,通过强制开发者使用可靠成熟的软件工程实践,遏制代码重复,保证完全遵守前两条原则。web2py能指导开发者完成几乎所有web应用开发中的常见任务(创建和处理表单,管理会话,小甜饼“cookie”,错误等等)。

web2py对第3个原则的处理与其它框架有所不同,有时与前两个原则相冲突。尤其是web2py不会导入用户应用,而是在预定义的情况下执行。这会暴露Python和web2py关键字。

对某些人来说,这看起来就像魔术,但它不是这样的。简单地说,在实践中有些模块已经自动导入了,而不需要开发者导入。web2py试图避免其它框架下存在的令人讨厌的特征,即开发者需要在每个模型和控制器的顶部导入相同的模块。

web2py通过导入自有模块节约了时间,避免了错误,这遵循了不重复自己和仅有一种实现方式的精髓。

如果开发者想使用其它Python模块或第三方模块,这些模块必须明确导入,就像开发任何其它Python程序一样。

模型-视图-控制器(Model-View-Controller)

web2py鼓励开发人员将数据表达(Model)、数据表示(View)和应用工作流(Controller)分离。web2py中一个请求的典型工作流描述如下:

在图中:

  • 服务器可以是web2py内置服务器或第三方服务器,例如Apache。服务器可以处理多线程。
  • "main"是主要的WSGI应用。它负责处理所有常见任务和封装用户应用。它处理cookies、sessions、transactions、URL地址解析及反向地址解析和分发。如果web服务器没有处理的话,它能服务和流静态文件。
  • Model、View、Controller组件构成了用户应用。
  • 同一个web2py实例可以承载多个应用。
  • 虚线箭头表示与数据库引擎的通信。数据库查询可以使用SQL语言(不推荐)或使用web2py DAL语言(推荐),这样web2py应用代码不依赖于特定数据库引擎。
  • 分发器将请求的URL映射成控制器中的函数调用。函数的输出可以是字符串或符号字典(哈希表)。字典中的数据将被呈现成视图。如果用户请求HTML页面(默认情况),字典将被呈现成HTML页面。如果用户以XML请求同一页面,web2py将会尝试找到一个能将字典呈现成XML格式的视图。开发人员可以创建视图将页面呈现成任何已经支持的协议(HTML、XML、JSON、RSS、CSV、RTF)或者另外的自定义协议。
  • 所有的调用都被封装到一个事务(transaction)之中,并且任何未捕获到的异常都将导致事务回滚。如果请求成功,事务将被提交。
  • web2py还能自动处理sessions和session cookies,并且当事务被提交的时候,相应的session也被保存,除非有另有指明。
  • 还能注册经常性的任务(通过cron)以定时和/或在特定的任务完成(action)之后执行。用这种方式将可能在后台运行耗时长的、计算量大的任务,而不影响用户浏览。

web2py----介绍相关推荐

  1. python第三方库下载-python常用第三方库介绍及下载

    GUI 1.wxpython(2.9.2.4--python2.6/2.7) Python下的GUI编程框架,与MFC的架构相似 2.PyQt(4.86--python2.5~3.2) 用于Pytho ...

  2. python语言的官方网站-web2py

    Python语言 Python 关于Python Python是一种通用的高级编程语言.它的设计思想是强调程序员的工作效率及代码的可读性.它有一个最低限度的核心语法,包括很少的基本命令以及简单语义,但 ...

  3. Python 介绍和环境准备

    前言 Python 是一个高层次的结合了解释性.编译性.互动性和面向对象的解释性编程语言. Python 是一种解释型语言: 这意味着开发过程中没有了编译这个环节.类似于PHP和Perl语言. Pyt ...

  4. Python基础_Python介绍及变量类型

    目录 一.Python语言介绍 高级语言: 面向对象: 编译性语言: 脚本语言是一种解释性的语言 二.Python起源 三.Python优缺点 1.优点 (1)简单 (2)易学 (3)免费.开源 (4 ...

  5. 01-python介绍、变量、输入输出语句

    一.计算机组成 计算机的组成 要实现计算机编程,首先需要明确计算机的组成.计算机主要分为硬件和软件两部分,而我们写代码,主要就是实现软件层面的功能. 什么是计算机 计算机(computer)俗称电脑, ...

  6. 【Python Web】30个Python Web开发框架介绍

    收藏:30个Python Web开发框架介绍 1. Bobo 2. Bottle 3. CherryPy 4. Cyclone 5. Flask 6. Itty-Bitty 7. Klein 8. M ...

  7. Python 、 PyCharm 、 Anaconda 介绍及安装

    Python . PyCharm . Anaconda介绍及安装 1. Python介绍及安装 1.1 Python介绍 1.2 python安装 1.3 pip工具 2 PyCharm介绍及安装 2 ...

  8. 简单介绍互联网领域选择与营销方法

    在我看来,互联网领域的选择是"安家",而营销方法的不同则表现了"定家"的方式多种多样,只有选对了,"家"才得以"安定". ...

  9. 常用开源协议介绍以及开源软件规范列表

    1. 开源协议介绍 GPL: General Public License,开源项目最常用的许可证,衍生代码的分发需开源并且也要遵守此协议.该协议也有很多变种,不同变种要求会略微不同. MPL: MP ...

  10. python:Json模块dumps、loads、dump、load介绍

    20210831 https://www.cnblogs.com/bigtreei/p/10466518.html json dump dumps 区别 python:Json模块dumps.load ...

最新文章

  1. python 加密和解密
  2. 测温枪的工作原理全面解析,如何测出你的温度
  3. BigMemory系列文章--2.Ehcache快速接入
  4. boost::math模块使用指定宽度的浮点 typedef估中等复杂的数学函数的测试程序
  5. spring下连接mysql_使用Spring连接mysql数据库
  6. 人民日报“权威认证”吃鸡装备哪家强,不服来辩!
  7. csharp: ODP.NET,System.Data.OracleClient(.net 4.0) and System.Data.OleDb读取Oracle g 11.2.0的区别...
  8. vue横向树结构_vue树形结构的实现
  9. eclipse jrebel插件
  10. WINDOWS SERVER 2003从入门到精通之林之间的信任关系
  11. oracle保存时间到数据库
  12. 【收藏】DIABLO 2 CD KEY
  13. UI设计作品中经常会用到的设计技巧?|优漫动游
  14. matlab get,matlab中的get函数怎么用?
  15. 明星里程被盗?看区块链如何加强个人信息安全保护
  16. 怎样设置和使用speedceo?简洁浏览器的使用分享
  17. 用python打印出一个人的照片_python爬取图片实例 - 一个人看日出,一个人看夕阳,一个人走路,一个人欢笑 - OSCHINA - 中文开源技术交流社区...
  18. 计算机游戏翻译,百度翻译电脑版
  19. Hello OsChina
  20. matlab空间重采样,matlab重采样函数

热门文章

  1. Android禁止自动同步网络时间
  2. ps4刷linux,PS4刷新GPU固件有惊喜 可运行Vulkan与Linux
  3. excel工具栏隐藏了怎么办_excel隐藏的5个超级技巧,只有少数老师知道,你知道是哪几个吗?...
  4. vue h5地图选点
  5. 新手在家做短视频自媒体,边追剧边赚钱,每天稳定收益200多
  6. 委托作为参数进行传递
  7. 五分钟学会Playwright录制脚本的方法以及语法难点
  8. 用友U8物料最后一次出入库日期及计算实际库龄
  9. css怎么不变形图片,css怎么让图片不变形
  10. 他漂洋过海到非洲创业,先后成立两家企业