2024-05-14 12:56:31 发布
网友
我知道各种框架都有它们的好处,但我个人希望我的python web开发尽可能直接:少写框架,多写python。
到目前为止,我发现唯一能让我以最明显的方式实现这一点的是web.py,但我对它的性能稍有担心。
对于那些使用nginx(或其他口味)+mod_wsgi+web.py的用户。。。表现如何?能否进一步改进?
对于那些使用过web.py,喜欢这个想法并继续写一些更好的东西或找到更好的东西的人。。。能告诉我来源吗?
我想听一听所有引人注目的,最小的,但强有力的方法。
很搞笑的是,即使有人问如何在没有框架的情况下写作,每个人还是会蜂拥而至,宣传他们最喜欢的框架。OP抱怨说不想要一个“重量级框架”,而回复提到了扭曲的所有东西?!来吧,真的。
是的,直接编写WSGI应用程序并从独立模块中获取所需的功能是完全可能的,而不是将代码放入一个特定框架的世界视图中。
要走这条路,您通常需要熟悉HTTP和CGI的基础知识(因为WSGI继承了之前规范中的大量内容)。这不一定是一种向初学者推荐的方法,但它是可行的。
I'd like to hear about all the conspicuous, minimal yet powerful approaches
你不会听到他们的事,因为没有人有兴趣把“自己动手”作为一种方法论来推广。我使用一个特定的独立模板包、一个特定的独立表单读取包、一个特定的数据访问层和一些自制实用程序模块。我写的不是一个我可以改变信仰的哲学,它们都是无聊的工具,可以换成其他同样好的东西。
走的路是wsgi。
WSGI是Web服务器网关接口。它是web服务器和应用程序服务器与web应用程序通信的规范(尽管它还可以用于更多的用途)。这是一个Python标准,在PEP 333中详细描述。
所有当前的框架都支持wsgi。很多web服务器也支持它(包括apache,通过mod_wsgi)。如果你想编写自己的框架,这是一条路。
这里是hello world,直接写信给wsgi:
def application(environ, start_response): status = '200 OK' response_headers = [('Content-type','text/plain')] start_response(status, response_headers) return ['Hello world!\n']
把它放在file.py中,将您的mod_wsgiapache配置指向它,它就会运行。纯Python。没有进口。只是一个python函数。
file.py
mod_wsgi
如果您真的在编写自己的框架,可以检查werkzeug。它不是一个框架,而是WSGI应用程序的各种实用程序的简单集合,已经成为最先进的WSGI实用程序模块之一。它包括一个功能强大的调试器、功能齐全的请求和响应对象、用于处理实体标记的HTTP实用程序、缓存控制头、HTTP日期、cookie处理、文件上载、功能强大的URL路由系统和一系列由社区贡献的插件模块。把无聊的部分从你手里拿开。
您也可以检查cherrypy。cherrypy的重点是成为一个允许您编写python的框架。Cherrypy有自己相当好的web服务器,但它与wsgi兼容,因此您可以通过mod_wsgi在apache中运行Cherrypy应用程序。这里是切里皮的hello world:
import cherrypy class HelloWorld(object): def index(self): return "Hello World!" index.exposed = True cherrypy.quickstart(HelloWorld())
很搞笑的是,即使有人问如何在没有框架的情况下写作,每个人还是会蜂拥而至,宣传他们最喜欢的框架。OP抱怨说不想要一个“重量级框架”,而回复提到了扭曲的所有东西?!来吧,真的。
是的,直接编写WSGI应用程序并从独立模块中获取所需的功能是完全可能的,而不是将代码放入一个特定框架的世界视图中。
要走这条路,您通常需要熟悉HTTP和CGI的基础知识(因为WSGI继承了之前规范中的大量内容)。这不一定是一种向初学者推荐的方法,但它是可行的。
你不会听到他们的事,因为没有人有兴趣把“自己动手”作为一种方法论来推广。我使用一个特定的独立模板包、一个特定的独立表单读取包、一个特定的数据访问层和一些自制实用程序模块。我写的不是一个我可以改变信仰的哲学,它们都是无聊的工具,可以换成其他同样好的东西。
走的路是wsgi。
WSGI是Web服务器网关接口。它是web服务器和应用程序服务器与web应用程序通信的规范(尽管它还可以用于更多的用途)。这是一个Python标准,在PEP 333中详细描述。
所有当前的框架都支持wsgi。很多web服务器也支持它(包括apache,通过mod_wsgi)。如果你想编写自己的框架,这是一条路。
这里是hello world,直接写信给wsgi:
把它放在
file.py
中,将您的mod_wsgi
apache配置指向它,它就会运行。纯Python。没有进口。只是一个python函数。如果您真的在编写自己的框架,可以检查werkzeug。它不是一个框架,而是WSGI应用程序的各种实用程序的简单集合,已经成为最先进的WSGI实用程序模块之一。它包括一个功能强大的调试器、功能齐全的请求和响应对象、用于处理实体标记的HTTP实用程序、缓存控制头、HTTP日期、cookie处理、文件上载、功能强大的URL路由系统和一系列由社区贡献的插件模块。把无聊的部分从你手里拿开。
您也可以检查cherrypy。cherrypy的重点是成为一个允许您编写python的框架。Cherrypy有自己相当好的web服务器,但它与wsgi兼容,因此您可以通过mod_wsgi在apache中运行Cherrypy应用程序。这里是切里皮的hello world:
相关问题 更多 >
编程相关推荐