问题
web framework是否包括webserver? 是否可以包括?
webserver 和 framework的关系是?
https://www.quora.com/What-is-the-difference-between-a-web-server-and-a-web-framework
A web server is an executable that handle http requests and serve your files to the client.
A lot of web frameworks have a web server executable so you can test your code easily, but usually these web servers are for developer only. It means that you shouldn‘t use them for production, since they are not safe at all.
web server
A web server listens for web connections and either serves static content from files, or passes requests onto other code.
服务器服务静态内容, 传送请求到其它代码中, CGI程序中(CGI程序实现 framework)。
web framework
Originally, the "passing on" meant executing programs (usually scripts) separate from the WS, using a protocol called CGI (just a standard way to describe call the script, communicating the request, who it came from, etc.) Script libraries, for parsing CGI requests, or generating HTML became the first web frameworks.
实现CGI协议的程序, 脚本库, 解析CGI请求, 产生HTML, 这个编程了第一代的 WEB框架。
It became common to reduce the overhead of these external scripts by grafting the script interpreter onto the WS. Web frameworks have, over time, started to take over much of the request-parsing aspect of the WS ("routing") - enough so that some frameworks decided to dispense with the WS entirely.
通常的做法是, 将脚本解析器移植到webserver中,这样可以减少外部脚本的负载。
webframework, 经过时间演变, 开始接手请求解析部分(ws的routing), 导致一些框架开始可以不适用webserver就可以跑。
The style of web programming has also changed: javascript now puts a lot of the WF‘s logic into the browser, so that whatever logic is still on the WS may be much reduced (as opposed to the original CGI notion, where the browser really only handled rendering of a static blob of HTML provided by the WS.)
时间又在演变, 现代web编程的风格, 又有了新的变化, js现在实现了很多webframework的逻辑, 在浏览器中,
所以服务器段的业务逻辑可以被大幅缩减。
So, usually when people say WS, they mean a generic WS like Apache. When people say WF, they usually mean something like PHP or more modern JS-based system that includes templating, ORM, routing, etc.
所以, 我么说ws是指通用webserver, 当我们说webframework, 是指PHP或者现代js系统, 模板, ORM,路由等。
ORM
http://stackoverflow.com/questions/1279613/what-is-an-orm-and-where-can-i-learn-more-about-it
Introduction
Object-Relational Mapping (ORM) is a technique that lets you query and manipulate data from a database using an object-oriented paradigm. When talking about ORM, most people are referring to a library that implements the Object-Relational Mapping technique, hence the phrase "an ORM".
An ORM library is a completely ordinary library written in your language of choice that encapsulates the code needed to manipulate the data, so you don‘t use SQL anymore; you interact directly with an object in the same language you‘re using.
Python web framework
https://jeffknupp.com/blog/2014/03/03/what-is-a-web-framework/
By now, the purpose of web frameworks should be clear: to hide the boilerplate and infrastructural code related to handling
HTTP
requests and responses. Just how much is hidden depends on the framework. Django and Flask represent two extremes. Django includes something for every situation, almost to its detriment. Flask bills itself as a "micro-framework" and handles the bare minimum of web application functionality, relying on third-party packages to do some of the less common web framework tasks.Remember, though, that at the end of the day, Python web frameworks all work the same way: they receive
HTTP
requests, dispatch code that generates HTML, and creates anHTTP
response with that content. In fact, all major server-side frameworks work in this way (excluding JavaScript frameworks). Hopefully, you‘re now equipped to choose between frameworks as you understand their purpose.