网页网站您现在的位置是:首页 > 博客日志 > 网页网站

python做web开发时用的是什么服务器?

<a href='mailto:'>微wx笑</a>的头像微wx笑2020-03-29 19:17:18网页网站人已围观关键字: Python  web  服务器  

python做web开发时用的是什么服务器?为什么说这个问题?今天一个小伙伴提了一个问题,如下图:这应该是参考我的文章:《Python入门》第一个Python Web程序——简单的Web服务器但是

python做web开发时用的是什么服务器?qMQ编程技术_踩坑日志_进阶指南_无知人生

为什么说这个问题?

今天一个小伙伴提了一个问题,如下图:qMQ编程技术_踩坑日志_进阶指南_无知人生


qMQ编程技术_踩坑日志_进阶指南_无知人生

这应该是参考我的文章:《Python入门》第一个Python Web程序——简单的Web服务器qMQ编程技术_踩坑日志_进阶指南_无知人生

但是他想访问执行一个 python 文件,结果呢,把源代码显示出来了!qMQ编程技术_踩坑日志_进阶指南_无知人生

创建测试文件:test.pyqMQ编程技术_踩坑日志_进阶指南_无知人生


qMQ编程技术_踩坑日志_进阶指南_无知人生

#!/usr/bin/env pythonprint "200 OK"print "Content-Type: text/plain"print ""print "Hello CGI!"

经过测试:qMQ编程技术_踩坑日志_进阶指南_无知人生

使用 “python -m BaseHTTPServer” 启动服务,访问 .py 文件输出如下:qMQ编程技术_踩坑日志_进阶指南_无知人生


qMQ编程技术_踩坑日志_进阶指南_无知人生

使用 “python -m SimpleHTTPServer” 启动服务,访问 .py 文件输出如下:
qMQ编程技术_踩坑日志_进阶指南_无知人生


qMQ编程技术_踩坑日志_进阶指南_无知人生

使用“python -m CGIHTTPServer”启动服务,访问 .py 文件输出如下:qMQ编程技术_踩坑日志_进阶指南_无知人生


qMQ编程技术_踩坑日志_进阶指南_无知人生

但是需要注意,文件必须放在“cgi-bin”或“htbin”目录下,目录必须小写。我们看下图qMQ编程技术_踩坑日志_进阶指南_无知人生


qMQ编程技术_踩坑日志_进阶指南_无知人生

如果没有把文件放在“cgi-bin”或“htbin”目录下,就会出现这样的情况;上面提到的小伙伴就是这个问题。但如果使用 SimpleHTTPServer 不论放在哪,同样会遇到这样的问题。qMQ编程技术_踩坑日志_进阶指南_无知人生

服务是怎么启动的?qMQ编程技术_踩坑日志_进阶指南_无知人生

Windows下打开CMD,切换到你的Web根目录(是一个相对的概念,比较好理解的就是“cgi-bin”或“htbin”目录所在目录),qMQ编程技术_踩坑日志_进阶指南_无知人生


qMQ编程技术_踩坑日志_进阶指南_无知人生

执行上面提到的命令,如:“python -m CGIHTTPServer”qMQ编程技术_踩坑日志_进阶指南_无知人生

Linux,Mac 等打开终端,执行上面提到的命令。qMQ编程技术_踩坑日志_进阶指南_无知人生

qMQ编程技术_踩坑日志_进阶指南_无知人生


qMQ编程技术_踩坑日志_进阶指南_无知人生


qMQ编程技术_踩坑日志_进阶指南_无知人生

有哪些服务器?qMQ编程技术_踩坑日志_进阶指南_无知人生

经过一些尝试和了解,qMQ编程技术_踩坑日志_进阶指南_无知人生

python 的 web 服务器可以基于基类自己实现,也可以直接使用基类启动;
qMQ编程技术_踩坑日志_进阶指南_无知人生

可以使用 CGI 的方式使用 CGIHTTPServer ,把文件放在“cgi-bin”或“htbin”目录下支持 .py 扩展名直接访问;qMQ编程技术_踩坑日志_进阶指南_无知人生

除了CGI,Python还支持wsgiqMQ编程技术_踩坑日志_进阶指南_无知人生

WSGI是Web Server Gateway Interface的缩写。以层的角度来看,WSGI所在层的位置低于CGI。但与CGI不同的是WSGI具有很强的伸缩性且能运行于多线程或多进程的环境下,这是因为WSGI只是一份标准并没有定义如何去实现。实际上WSGI并非CGI,因为其位于web应用程序与web服务器之间,而web服务器可以是CGI,mod_python(注:现通常使用mod_wsgi代替),FastCGI或者是一个定义了WSGI标准的web服务器就像python标准库提供的独立WSGI服务器称为wsgiref。
qMQ编程技术_踩坑日志_进阶指南_无知人生

还有一个不错的选择是:uwsgiqMQ编程技术_踩坑日志_进阶指南_无知人生

有了这些,Python 还可以和Nginx,Apache 组合使用,提供更高的并发支持;qMQ编程技术_踩坑日志_进阶指南_无知人生

还可以配合使用:SupervisorqMQ编程技术_踩坑日志_进阶指南_无知人生

[Supervisor| http://supervisord.org/configuration.html ]可以同时启动多个应用,最重要的是,当某个应用Crash的时候,他可以自动重启该应用,保证可用性。
qMQ编程技术_踩坑日志_进阶指南_无知人生

像一些知名的框架 Django、tornado 框架,都是以 WSGI 的方式运行的。qMQ编程技术_踩坑日志_进阶指南_无知人生

还有更好的Python Web 服务器吗?qMQ编程技术_踩坑日志_进阶指南_无知人生


qMQ编程技术_踩坑日志_进阶指南_无知人生

本文由 微wx笑 创作,采用 CC BY-NC 4.0 许可协议。 非商业性使用可自由转载、引用、甚至修改,但需署名作者且注明出处。

很赞哦! () 有话说 ()