精华内容
下载资源
问答
  • 作者:融水公子 rsgz首先我们得知道什么是应用服务器应用服务器常被看作是一个三层的应用程序,...Web应用程序框常见应用服务器(web框架):1.DjangoDjango是一款用Python语言写的免费开源的Web应用程序框架,它遵循...

    作者:融水公子 rsgz

    首先我们得知道什么是应用服务器

    应用服务器常被看作是一个三层的应用程序,即

    1 图形用户界面(GUI)服务器

    2 应用程序(业务逻辑)服务器

    3 数据库和事务服务器(目的是为安全及状态维护、数据访问及其持久性提供服务)

    你还可以叫它应用程序服务器 Web应用程序框

    常见应用服务器(web框架):

    1.Django

    Django是一款用Python语言写的免费开源的Web应用程序框架,它遵循模型 -视图-控制器(MVC)的架构模式。

    2.Gunicorn

    Gunicorn“绿麒麟”是一款支持Unix的Python Web服务器网关接口HTTP服务器,提供了大量的功能,能让开发操作变得更容易。

    3.Python Paste

    Python Paste,有时也称为paste,是一套用Python编写的用于Web开发工具。

    4.Tornado

    Tornado是一款可扩展的,非阻塞的Web服务器,应用开发框架,以及异步联网库。

    5.Twisted

    Twisted是一款事件驱动的网络编程框架,支持TCP,UDP,SSL / TLS,IP多点传播和大量的协议(包括HTTP,XMPP,NNTP,IMAP,SSH,IRC和FTP等等)。

    6.CherryPy

    CherryPy是一款使用Python编程语言的面向对象的Web应用程序框架。它通过使用封装来支持HTTP协议,旨在为加快Web应用程序的开发进程

    总之,应用服务器支持动态网页的创建和服务的部署,比如集群、故障切换、负载均衡等,所以开发者只要关注实现业务逻辑即可

    ---

    展开全文
  • 今天一个小伙伴提了一个问题,如下图: 这应该是参考我的文章:《Python入门》第一个Python Web程序——简单的Web服务器但是他想访问执行一个 python 文件,结果呢,把源代码显示出来了!创建测试文件:test.py#!/...

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

    为什么说这个问题?

    今天一个小伙伴提了一个问题,如下图:

    这应该是参考我的文章:《Python入门》第一个Python Web程序——简单的Web服务器

    但是他想访问执行一个 python 文件,结果呢,把源代码显示出来了!

    创建测试文件:test.py

    #!/usr/bin/env python

    print "200 OK"

    print "Content-Type: text/plain"

    print ""

    print "Hello CGI!"

    经过测试:

    使用 “python -m BaseHTTPServer” 启动服务,访问 .py 文件输出如下:

    使用 “python -m SimpleHTTPServer” 启动服务,访问 .py 文件输出如下:

    使用“python -m CGIHTTPServer”启动服务,访问 .py 文件输出如下:

    但是需要注意,文件必须放在“cgi-bin”或“htbin”目录下,目录必须小写。我们看下图

    如果没有把文件放在“cgi-bin”或“htbin”目录下,就会出现这样的情况;上面提到的小伙伴就是这个问题。但如果使用 SimpleHTTPServer 不论放在哪,同样会遇到这样的问题。

    服务是怎么启动的?

    Windows下打开CMD,切换到你的Web根目录(是一个相对的概念,比较好理解的就是“cgi-bin”或“htbin”目录所在目录),

    执行上面提到的命令,如:“python -m CGIHTTPServer”

    Linux,Mac 等打开终端,执行上面提到的命令。

    有哪些服务器?

    经过一些尝试和了解,

    python 的 web 服务器可以基于基类自己实现,也可以直接使用基类启动;

    可以使用 CGI 的方式使用 CGIHTTPServer ,把文件放在“cgi-bin”或“htbin”目录下支持 .py 扩展名直接访问;

    除了CGI,Python还支持wsgi

    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。

    还有一个不错的选择是:uwsgi

    有了这些,Python 还可以和Nginx,Apache 组合使用,提供更高的并发支持;

    还可以配合使用:Supervisor

    [Supervisor| http://supervisord.org/configuration.html ]可以同时启动多个应用,最重要的是,当某个应用Crash的时候,他可以自动重启该应用,保证可用性。

    像一些知名的框架 Django、tornado 框架,都是以 WSGI 的方式运行的。

    还有更好的Python Web 服务器吗?

    ======================文档信息===========================

    版权声明:非商用自由转载-保持署名-注明出处

    署名(BY) :testcs_dn(微wx笑)

    文章出处:[无知人生,记录点滴](http://blog.csdn.net/testcs_dn)

    ==============本文首发于个人微信订阅号(微wx笑)============

    展开全文
  • 1.Python web开发你需要理解的一些服务器概念前几日在生产服务器上部署Python web.py的一个项目,发现自己对服务器的一些概念...WSGI不是服务器,也不是API或者Python什么模块之类的,它只是一种Python web的一...

    1.Python web开发你需要理解的一些服务器概念

    前几日在生产服务器上部署Python web.py的一个项目,发现自己对服务器的一些概念不是很明白,遂查资料看了一会,特此做出个人的一些算是笔试的总结吧,以便之后可以回顾

    2.WSGI

    全称是Web Server Gateway Interface,WSGI不是服务器,也不是API或者Python的什么模块之类的,它只是一种Python web的一种规范,类似于Java web里面的servlet规范,WSGI规范定义了web应用(web框架)与web服务器之间交互的接口,约定了WSGI server怎么去调用web应用程序类或者函数,web应用程序需要符合什么样的规范。而下面说的uWSGI就是一种支持WSGI规范的服务器,或者你可以将uWSGI理解为一种支持WSGI规范的容器,所以我们可以将web应用部署到uWSGI中,然后当它接受请求时,就会按照WSGI定义的接口回调web应用来处理请求。

    WSGI定义了两种角色,分别为server端(或者gateway端)和application端(或者framework端),需要server端和application端都支持WSGI,一般而言server端是uWSGI,application端是一个可调用对象(callable object),可调用对象可以是类、方法或者可调用的实例,这个对象接受两个参数environ(请求的环境变量)和start_response(回调函数)。

    environ是一个字典,包含了客户端请求的信息,如 HTTP 请求的首部,方法等信息,可以认为是请求上下文

    start_response一个用于发送HTTP响应状态(HTTP status )、响应头(HTTP headers)的回调函数。在返回内容之前必须先调用这个回调函数

    def simple_app(environ, start_response):

    """

    docstring, it's just a test application

    """

    status = '200 OK'

    response_headers = [('Content-type', 'text/html')]

    start_response(status, response_headers)

    return ['Hello World']

    上面的回调函数的作用是让WSGI server返回响应的首部和HTTP状态码,这个函数必须有两个参数,第一个是状态码,第二个是响应的首部元组组成的列表,并且回调函数设置状态码和首部需要在return响应HTTP body之前执行。

    值得一说的是,return返回的响应信息应该是一个可迭代对象,上面的例子中将字符串放在了列表里面,如果直接返回字符串,会导致WSGI服务器对字符串进行迭代而影响速度。

    3 uWSGI

    是一个web服务器,实现了WSGI协议、uwsgi协议、http协议等

    4 UWSGI

    一种规范,或者说是一种通信协议,主要用在代理服务器(如Nginx)与uWSGI服务器之间的通信,而WSGI主要是用在uWSGI服务器和应用程序之间的通信。

    5 请求流程

    首先nginx 是对外的服务接口,外部浏览器通过url访问nginx;

    nginx 接收到浏览器发送过来的http请求,将包进行解析,分析url,如果是静态文件请求就直接访问用户给nginx配置的静态文件目录,直接返回用户请求的静态文件。如果不是静态文件,而是一个动态的请求,那么nginx就将请求转发给uWSGI,uWSGI接收到请求之后将包进行处理,处理成WSGI可以接受的格式,根据请求调用应用程序的某个文件,某个文件的某个函数,最后处理完将返回值再次交给uWSGI,uWSGI将返回值进行打包,打包成UWSGI能够接收的格式,并转发给nginx,nginx最终将返回值返回给浏览器.

    6 小问题

    从上面可以看出,Nginx这一层并不是必须的,uWSGI服务器完全可以完成整个和浏览器的交互,但是需要考虑下面的情况

    安全问题,程序不能直接被浏览器访问到,而是通过nginx,nginx只开放某个接口,uWSGI本身是内网接口,这样运维人员在nginx上加上安全性的限制,可以达到保护程序的作用

    负载均衡问题,一个uWSGI很可能不够用,即使开了多个work也是不行,毕竟一台机器的cpu和内存都是有限的,有了nginx做代理,一个nginx可以代理多台uWSGI完成uWSGI的负载均衡

    静态文件问题,用django或是uWSGI这种东西来负责静态文件的处理是很浪费的行为,而且他们本身对文件的处理也不如nginx好,所以整个静态文件的处理都直接由nginx完成,静态文件的访问完全不去经过uWSGI以及其后面的东西。

    展开全文
  • 利用Python自带的包可以建立简单的web服务器。在DOS里cd到准备做服务器根目录的路径下,输入命令:python -mWeb服务器模块[端口号,默认8000]例如:python -m SimpleHTTPServer 8080创建成功以后,DOS界面会显示以下...

    利用Python自带的包可以建立简单的web服务器。在DOS里cd到准备做服务器根目录的路径下,输入命令:

    python -m Web服务器模块 [端口号,默认8000]

    例如:

    python -m SimpleHTTPServer 8080

    创建成功以后,DOS界面会显示以下内容:

    Serving HTTP on 0.0.0.0 port 8000 ...

    Traceback (most recent call last):

    File "C:\Program Files (x86)\Workpython\lib\runpy.py", line 174, in _run_module_as_main

    "__main__", fname, loader, pkg_name)

    File "C:\Program Files (x86)\Workpython\lib\runpy.py", line 72, in _run_code

    exec code in run_globals

    File "C:\Program Files (x86)\Workpython\lib\SimpleHTTPServer.py", line 235, in

    test()

    File "C:\Program Files (x86)\Workpython\lib\SimpleHTTPServer.py", line 231, in test

    BaseHTTPServer.test(HandlerClass, ServerClass)

    File "C:\Program Files (x86)\Workpython\lib\BaseHTTPServer.py", line 610, in test

    httpd.serve_forever()

    File "C:\Program Files (x86)\Workpython\lib\SocketServer.py", line 231, in serve_forever

    poll_interval)

    File "C:\Program Files (x86)\Workpython\lib\SocketServer.py", line 150, in _eintr_retry

    return func(*args)

    KeyboardInterrupt

    第一行表示的是你所打开的窗口,

    后面则显示当前文件夹当中的内容以及他们的位置。

    有一点要注意,如果你关闭了DOS窗口,那么服务器便会关闭。

    然后你可以在浏览器中输入

    http://localhost:端口号/路径

    来访问服务器资源。

    例如:

    http://localhost:8080/index.html

    这里的“Web服务器模块”有如下三种:

    BaseHTTPServer: 提供基本的Web服务和处理器类,分别是HTTPServer和BaseHTTPRequestHandler。

    SimpleHTTPServer: 包含执行GET和HEAD请求的SimpleHTTPRequestHandler类。

    CGIHTTPServer: 包含处理POST请求和执行CGIHTTPRequestHandler类。

    ps:

    以上是在python 2的试验下成功的,实际应用中可能因为一些情况影响而有所不同,最近换了python 3,用python -m SimpleHTTPServer 8000又不行了。

    如果是python 3的话,使用以下语句:

    python -m http.server 8000

    (8000是端口号,可不加,默认8000)

    展开全文
  • apapce只能选择32位的Python解释器 ? Apache只有32位的? 用Python写网站 除了apache 还可以用什么服务器软件???
  • CGI即通用网关接口(Common Gateway Interface),是外部应用程序(CGI程序)与Web服务器之间的接口标准,是在CGI程序和Web服务器之间传递信息的规程。CGI规范允许Web服务器执行外部程序,并将它们的输出发送给Web浏览器...
  • 记一次tornado框架python后端从web服务器下载文件过程 date 2020.7.21 Q:暂定的过程 post方法,先前的get,传body内文件名。 1、首先获取前端需要下载什么文件。 2、找到文件在服务器上面的路径。 3、将文件...
  • web服务器性能如何,有各种各样的测试方法。要了解自己的服务器的极限,就必须要做压力测试,下面我们来介绍几款web服务器压力测试工具。1、webbenchwebbench是Linux下的一个网站压力测试工具,最多可以模拟3万个...
  • 用Python语言配置WEB服务器不多见,但也不是很罕见,必经Python语言太"优美"了。早期我的WEB服务器配置为Nginx+uWSGI+app.py(bottle)。uWSGI号称比FastCGI还要快,于是我就采用了uWSGI,uWSGI"大而全",从上到下什么...
  • 用Python语言配置WEB服务器不多见,但也不是很罕见,必经Python语言太"优美"了。早期我的WEB服务器配置为Nginx+uWSGI+app.py(bottle)。uWSGI号称比FastCGI还要快,于是我就采用了uWSGI,uWSGI"大而全",从上到下什么...
  • 在arduino中,我有一个带有javascript代码的网页作为web服务器,用来向程序代码发送get请求并告诉它我要做什么(例如,打开一个电磁阀)。为此,我必须让代码理解javascript代码从html网页发送的请求。在这是网页上...
  • 今天一个小伙伴提了一个问题,如下图:这应该是参考我的文章:《Python入门》第一个Python Web程序——简单的Web服务器但是他想访问执行一个 python 文件,结果呢,把源代码显示出来了!创建测试文件:test.py#!/usr...
  • 我需要写一个非常轻的数据库(sqlite很好)应用程序,最初将运行在本地的客户端windows PC上,但如果有必要,...Django特别警告不要在生产中使用它的内置web服务器,所以我的两个选择似乎是。。。在a)当应用程序在wind...
  • 写在开始之前什么Web服务器Web服务器,顾名思义就是提供 Web 服务的服务器,我们这里要做的,确切的说应该是服务器程序为什么要写Web服务器?Just for fun享受动手的乐趣看懂本文章需要哪些基础?可以看懂python...
  • 以我的想法,谈谈自己用python写的web服务器,如何装饰器实现路由,以及实现伪静态前端页面,和,如何与自己写的mini_web框架实现前端页面与后端数据库交互,实现动态查询 今天下午,闲的没事干,于是就打开...
  • 用Python语言配置WEB服务器不多见,但也不是很罕见,必经Python语言太"优美"了。早期我的WEB服务器配置为Nginx+uWSGI+app.py(bottle)。uWSGI号称比FastCGI还要快,于是我就采用了uWSGI,uWSGI"大而全",从上到下什么...
  • 什么80%的码农都做不了架构师?>>> ...
  • Web服务器的主要功能是存储,处理和传递网页给客户。客户端和服务器之间的通信使用超文本传输​​协议(HTTP)进行。交付的页面最常见的是HTML文档,除了文本内容之外,还可能包含图像,样式表和脚本。 Web服务器的...
  • 在这个大数据时代,如果你还不知道人工智能,那么你就out了,在这两年Python持续火爆的情况下,越来越多的人都想学习,那么学Python什么用呢?1.Web应用开发服务器端编程,具有丰富的Web开发框架,如Django和...
  • 在这个大数据时代,如果你还不知道人工智能,那么你就out了,在这两年Python持续火爆的情况下,越来越多的人都想学习,那么学Python什么用呢?1.Web应用开发服务器端编程,具有丰富的Web开发框架,如Django和...
  • 在问题websocket服务器需要一个用于连接的令牌,因此为什么Thor不能开箱即,我需要一种方法测试软件发送令牌。我希望将此部件保留在测试中,因为它必须通过另一台计算机的身份验证,因此...
  • 原文:《Let’s Build A Web Server. Part 1.》     有一天,一个女人出门散步,来到一个建筑工地,看到三个男人在工作。她问第一个男人,“你在做什么?”,他对这个问题很恼火,咆哮道,“你没看到我在砌砖...
  • 服务器模型 C/S模型 socket 是什么 ? 一种进程间的通信技术 由伯克利大学(BSD) 发明, 才有了当前的...用python搭建简易的web服务器: 1. 导入相关模块 import os # 导入系统模块 import socket # 导入 socket包...
  • 例如,通过 mod_wsgi 模块,Apache 可以运行 Python 编写的 Web 程序。Python 定义了 WSGI 标准应用接口来协调 HTTP 服务器与基于 PythonWeb 程序之间的通信。不仅如此,一些 Web 框架(如 Django、TurboGears...
  • 要知道什么是Web框架首先要知道Web服务器的概念。Web服务器是一个无情的收发机器,对它来说,接收和发送是最主要的工作。在我们浏览器打开网页时,如果不考虑复杂情况,我们可以理解为我们在向服务器要东西,而...
  • 一、Python优点: 1.学习成本低 2.免费开源 3.面向对象 4.可移植性 5.适应人群广 6.应用领域广泛 缺点: 1.运行速度慢 2.中文资料缺乏 3.线程不能利用多核 应用场景: 1.web开发 2. 可以做Web开发、...
  • 前提声明:  python开发web,就现阶段的本人认知来收,还不是...而且在国内的应用也比较少和局限,大部分人还是用python来做运行性的脚本。  所以本文仅止于浅显地探讨一下python如何在linux下进行web开发,如何深入
  • 用pythonweb你需要考虑两点:1.框架支持(什么?你想直接写wsgi?当我没说)2.服务器提供商提供的环境框架的话,对Python 3.0支持大多还在beta阶段。大头Django目前版本1.4还不支持Python 3.0,但将来1...
  • 其实你自己用python写的,也足够。 压力测试过程中要统计时间。 比如每秒的并发数,每秒的最大响应时间, 最小响应时间, 平均响应时间。最后再统一所有的请求完成后的上术参数。将这些参数输出成CSV格式的文件。...
  • 安装配置什么的就不说了教程很多服务器python2的(因为supervisor不支持python3) 项目是python3的,靠virtualenv来创建的虚拟环境。(项目名称AAA吧) 在服务器安装好supervisor之后 先通过下面的语句生成配置...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 546
精华内容 218
关键字:

python用什么web服务器

python 订阅