最近看了一些Python的Web Framework,Python的web编程是百家争鸣,各种概念和相关“责任人”也没有java里面那么清晰,我简单的根据自己的理解做一个总结。我想这些概念应该是通用的,或者对其他语言的web编程有借鉴意义的。
1. 传统的Web Server应该具备的功能
- 监听一个本地端口,接受客户端的HTTP请求
- 自己处理HTTP请求或者调用其他网关来处理请求
- 将处理结果基于HTTP协议响应给客户端
- 关于HTTP/HTTPS的其他方面支持
2. Web Gateway 应该具备的功能
- Gateway 不需要处理HTTP协议的细节
- Gateway 接受环境变量和调用参数作为自己的变量
- Gateway 根据调用规则,返回调用结果
3. Web Framework 通常具备的功能
很少有一个框架完成所有的这些任务,一般的框架往往提供基本功能或者专攻一项功能,其余的功能由我们自己实现或者我们自己组合多个框架。Django据说很能干,大包大揽,但是需求是千变万化的,所以往往应该由程序员组合其他专攻一项的框架来完成特定的任务。java 里面的SSH就是这个道理。
- 1. Session(Cookie)
- 2. Authentication/Authorization : AA是一个非常通用的功能,应该抽象到框架里面去实现,不要重复啃这个硬轮子
- 3. Template :模板会大大增加可读性和可维护性,一个简单易用强大的模板非常重要
- 4. MVC :MVC 已经是一种习惯
- 5. Menu :菜单导航也是一个通用的模块,最好由框架实现
- 6. Pagination:分页也是一个非常普遍的功能,在开发具体项目时,应该要提前实现
- 7. i18n:框架应该提供国际化的解决方案
- 8. DB/ORM:现在的项目,访问数据库几乎是家常便饭,所以好的框架应该提供简单的DB访问接口,能提供ORM更佳
- 9. Workflow ?
- 10. Web Service ?
- 11. Batch Job
- 12. 验证码?
- 其他
4. Web Application 常见功能
- 1. login/logout/Account maintenance :基于Web服务器或者Web框架提供的Session,AA等功能,实现基于用户的创建登录注销等
- 2. Query / View / Create / Delete / Undelete / Import / :基于DB/ORM,Pagination等,实现数据的增删改查导入等等
- 3. Front verification/Front control (JavaScript) :前端验证几乎都是用JavaScript了,可以考虑使用一个流行的JavaScript框架
- 4. Back End verification :后端验证
- 5. theme / UI(CSS) :谁都喜欢漂亮的页面,统一的主题和界面是每个项目必须的
- 6. Parameter <system properties> :项目都有一些系统参数,应该提供页面让管理员去维护这些参数
- 7. Code <Mapping)> : Code Mapping就是男M女F的mapping,应该提供页面让管理员去维护这些code
- 8. Upload / Download :上传下载文件,这个应该写成本项目的common模块
- 9. Report (Excel, PDF):报表,可以由代码生成也报表也可以使用第三方报表框架
- 10. Audit trail :任何人做任何操作都应该有audit,这个功能每个项目都不一样,还是各做各的吧
- 11. Backup/Recovery :故障恢复?
5. 什么是Web Middleware
什么是Web Middleware ?就是这家伙对Web Server来说,装的像个Web Application;同时对Web Application来说,这家伙又装的像个Web Server。也就是说对Web Server来说,Web Middleware 扮演Web Application的角色;同时对Web Application来说,Web Middleware 扮演Web Server的角色。
我个人觉得很多Python的Web框架,都是Middleware,对传统的Web Server来说,扮演基于WSGI的Application的角色,对于我们开发项目的人来说,他们又扮演Web Server/Web Framework的角色。
分享到:
相关推荐
2.学习基础知识:开始学习Python之前,建议先掌握一些基础的编程概念和术语。了解变量、数据类型、条件语句、循环等基本概念,这些对于理解Python编程语言至关重要。 3.学python不要忘了看python官网这是最全最基础...
描述这是用于的Python编程接口和推理引擎。 它支持以图表形式研究多个概念关系。 有关ConceptNet5项目的常规文档可以在找到。依存关系networkx软件包(> = 1.7),以便使用图形函数处理查询结果。指示安装: $ sudo ...
RFID 和 Arduino 浏览器导航器关于如何使用 Arduino 和 RFID 屏蔽 + 标签控制计算机的简单 Python 概念验证。 此概念验证允许您使用预定义的 RFID 标签控制 Web 浏览器。 我的第一个编程项目之一,大约在 2012 年。...
它们比教程更加深入,且需要你先了解一些关于 Django 是如何工作的知识。 快速入门 您是刚学 Django 或是初学编程? 这就是你开始学习的地方! 从零开始: 概要 | 安装 入门教程: 第1节: 请求和响应 | 第2节: 模型...
道路地图 “嘿,如果您是初学者,中级程序员或专业人士,我会为您提供每种语言的可爱项目,而对于特别是初学者,我会为您提供应学习的最著名的语言和概念的路线图,例如Java; Javascript; Python ;...Py
一、Python运维开发基础课程列表 Python运维开发基础课程列表 第一天 1、编程语言介绍 2、Python基础,介绍历史、...7、课程总结、回顾、期末学生开发运维软件大作业实战 8、期末开发运维软件大作业重点讲解,答疑。
函数式概念 计算机图形学 WEB服务器 版本控制 编辑器 NoSQL PostgreSQL MySQL 管理和监控 项目相关 设计模式 Web 大数据 编程艺术 其它 Android APP AWK C/C++ (by @andycai) Clojure Dart Elixir Erlang Fortran Go...
Matlab 求解偏微分的代码 ...区块链技能/库:web3.py、web3.js、testnet、truffle、brownie、Hyperledger EVM、Remix、openzeppelin ERC-20、ERC-721、ERC-1155 网络框架:Flask 数字:Numpy、Scipy、M
该存储库保存有关VOO向其订户提供的NETGEAR CG3700B电缆调制解调器中发现的VOOdoo漏洞的概念证明。 这些调制解调器使用弱算法来生成WPA2预共享密钥,从而使攻击者可以在易受攻击的调制解调器的接收范围内从接入点...
我可以在web浏览器看到我的版本库,但是svn checkout给我一个301 Moved Permanently错误。 我尝试察看我的文件的一个老版本,但是svn告诉我“path not found”。 C. WebDAV和自动版本化 WebDAV基本概念 仅是平常的...
我可以在web浏览器看到我的版本库,但是svn checkout给我一个301 Moved Permanently错误。 我尝试察看我的文件的一个老版本,但是svn告诉我“path not found”。 C. WebDAV和自动版本化 WebDAV基本概念 仅是平常的...