最近看了一些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的角色。
分享到:
相关推荐
3. Python编程语言的介绍,以及web2py如何将Python用于web开发,包括如何使用Python的`help()`和`dir()`功能来学习和探索库和模块。 4. 有关MVC架构的详细信息,这是web2py框架的组成部分,它将应用程序分为三个...
**Python web框架:web.py详解** ...总结来说,web.py是一个适合初学者和经验丰富的开发者的Python Web框架,它以简洁、高效和灵活性著称。通过理解其核心概念并实践开发,开发者可以快速构建出功能齐全的Web应用。
`web.py` 是一个针对Python编程语言设计的轻量级Web框架,它的核心设计理念是简洁和高效。作为一个小巧而灵活的框架,`web.py` 能够帮助开发者快速构建Web应用程序,同时保持代码的清晰性和可维护性。在本文中,我们...
### web2py中文文档知识点概览 #### 一、引言 - **原则**:web2py遵循一系列设计原则,确保其高效、安全且易于使用。 - **Web框架**:介绍web2py作为一款全栈式的Web开发框架,集成了所有必要的组件和服务,包括但...
总结来说,"PY版多线程webserver.rar"是一个用Python实现的多线程Web服务器,通过`threading`模块实现了并发处理客户端请求的能力。打包后的`server2.exe`使该服务器可在无Python环境的系统上运行,`说明.jpg`则提供...
本教程针对S60V3平台,意味着它可能包含了一些关于在移动设备上运行Python程序的内容。 Python的核心知识点包括: 1. **基础语法**:Python的基础始于变量、数据类型(如整型、浮点型、字符串、布尔型)、操作符...
5. HelloWorld测试项目:使用`django-admin.py startproject`命令创建项目,然后运行`manage.py runserver`启动Web服务,并在浏览器中验证项目运行。 **实验二:模板和视图** 实验目的是学习如何在模板中显示动态...
除了基础的网络通信,Python还支持更高级的网络编程概念,如Web框架Django和Flask,它们简化了Web应用的开发。Django提供了完整的MVC(模型-视图-控制器)架构,包括数据库管理、表单处理、身份验证等。Flask则是一...
总结来说,Python Web框架,尤其是webpy,为Python开发者提供了一种高效、灵活的Web开发方式。通过理解和掌握webpy,开发者可以快速构建功能完善的Web应用,同时享受到Python语言的优雅和强大。
深入Python书上的源码.rar可能包含了一些书籍《深入Python》中的实践代码,这本书通常会涵盖Python的基础到进阶主题,包括数据结构、面向对象编程、异常处理、标准库和网络编程等。通过阅读和运行这些源码,你可以更...
总的来说,"graphics.py"是一个适合初学者的Python图形库,它通过简单的API让编程新手能够快速上手,理解图形化编程的基本概念。通过阅读和研究其源代码,开发者不仅可以学会如何使用这个库,还能对Python的面向对象...
在《Python编程:从入门到实践》这本书中,你会学习到基础的编程概念,如变量、数据类型、控制流(条件语句和循环)、函数,以及如何使用Python的标准库。这本书还将引导你了解面向对象编程,理解类和对象的概念,...
1. **基础概念**:web2py是一个全栈框架,包括了服务器、数据库、模板引擎、表单处理、认证机制等组件,支持多种数据库如SQLite、MySQL、PostgreSQL等。 2. **MVC模式**:遵循Model-View-Controller设计模式,模型...
在这个名为".py:编程项目"的压缩包中,包含了一个名为".py-main"的文件,这通常是主程序入口,负责整个项目的启动和控制。 Python编程项目通常涉及以下几个关键知识点: 1. **基础语法**:Python的基础语法包括...
Python广泛应用于系统编程、图形用户界面编程、网络编程、数据库编程、Web编程、游戏开发、科学计算、人工智能、数据挖掘和机器学习等领域。它既能够完成常规的编程任务,也能够作为其他语言的粘合剂,将多种语言...
2. **面向对象编程**:Python支持面向对象编程,包括类的定义、继承、封装、多态等概念。在这些源码中,我们可以看到如何创建和使用类,以及类和对象之间的关系。 3. **模块与包**:Python中的模块和包是组织代码的...
**PyPI 官网下载 | cirq_web-0.14.0.dev20211111074100-py3-none-any.whl** 在Python的生态系统中,PyPI(Python Package Index)是官方的第三方库分发平台,开发者可以在这里发布他们的Python软件包,供其他用户...
Python库是开发者在编程时经常会使用的工具,它们提供了一系列预定义的功能和接口,使得程序员能够更高效、便捷地实现特定任务。"python_api_machine-0.1.1-py2.py3-none-any.whl" 是一个针对Python的库,特别的是,...