配置win7下python的web运行环境

前言

要想看懂这篇文章,读者必须有python环境 。 对python有一定的了解  。这篇博客主要介绍如何搭建一个python的web环境 。 先是介绍大家搭建python的web环境需要什么东西 。nginx   flup/WSGI   flask 。 他们分别是干什么的  。 然后还有实践部分 。 

概念理解

需要的材料  

nginx  
flup/WSGI
flask

什么是nginx?  

Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器。这是我刚刚百度的结果。结果我还是不知道nginx是什么 。 这么说吧,淘宝很帅,
是吧! 双11那天,全国人民一起刷淘宝,但它还是坚持住了 。 这是为什么呢 ? 这说明它的服务肯定不是放在一个服务器上的。 简单的来说它一定
不是用一个tomcat! 它一定是用了一个类似nginx的服务器转发请求的。如图



什么是flup/WSGI?

servlet中,我们每个一个servlet都要按照一定的格式来写   一个servlet必须有init ,post , get ,destroy 方法 。 每一个继承servlet接口的java类都可以放在
tomcat中都可以运行。那一个什么样的代码可以在python服务器里面运行呢 ?   答案是满足WSGI协议的代码可以在如web环境中运行 。 今天要用的python服务器时flup。
WSGI简介  

  1. from wsgiref.simple_server import make_server  
  2.   
  3. def hello_world_app(environ, start_response):  
  4.     status = '200 OK' # HTTP Status  
  5.     headers = [('Content-type''text/plain')] # HTTP Headers  
  6.     start_response(status, headers)  
  7.   
  8.     # The returned object is going to be printed  
  9.     return ["Hello World"]  
  10.   
  11. httpd = make_server('', 8000, hello_world_app)  
  12. print "Serving on port 8000..."  
  13.   
  14. # Serve until process is killed  
  15. httpd.serve_forever()  

  这段代码解释了 WSGI协议中python满足什么样的代码可以 在服务器中运行 。   

可以在服务器中运行的是一个方法 。 方法第一个参数其实就是一个字典对象,里面是所有从用户请求和服务器环境变量中获取的信息内容,协议当然会定义一些必须有的值,及这些值对应的变量名;第二个参数其实就是一个回调函数,它向应用端传递一个用来生成响应内容体的write对象,这个对象也是有__call__方法的。

 协议也提到了,还可以设计中间件来连接服务器端与应用端,来实现一些通用的功能,比如session、routing等。


什么是flask?   

j2ee中有一个框架叫struts 。  flask就是python中的struts!  



实践 :

首先下载nginx  

1)下载地址:

  http://nginx.org

2)启动

  解压至c:\nginx,运行nginx.exe(即nginx -c conf\nginx.conf),默认使用80端口,日志见文件夹C:\nginx\logs

3)使用

  http://localhost

 配置nginx,找到nginx.conf
 添加一段如下代码
 server
  {
    listen  8000;
   server_name test.com;
    location /
    {
       #fastcgi_pass  unix:/tmp/python-cgi.sock;(注1)
      fastcgi_pass  127.0.0.1:8008; (注意这里的端口和上面的listen的8000端口要不一样,否则会报地址已占用的错)
      fastcgi_param SCRIPT_FILENAME "";
      fastcgi_param PATH_INFO $fastcgi_script_name;
      include fcgi.conf;
    }
  }


下载flup 

到命令行输入  pip.exe install flup . 就可以安装flup了 。   


然后我们再写一个fcgi.py,代码如下

#!/usr/bin/python

# encoding : utf-8


from flup.server.fcgi import WSGIServer

def myapp(environ, start_response):
    start_response('200 OK', [('Content-Type', 'text/plain')])
    return ['Hello World!\n']

if __name__  == '__main__':
   WSGIServer(myapp,bindAddress=('127.0.0.1',8008)).run()(注2



运行到这了,我们就可以在浏览器里面敲: http://localhost:8000
如果返回 Hello World,恭喜你,迈出了nginx 运行python的第一步

参考的文章有 

http://www.cnblogs.com/chuncn/archive/2011/10/14/2212291.html     windows下nginx安装、配置与使用
http://blog.163.com/sky20081816@126/blog/static/16476102320108254032278/  
捉摸Python的WSGI(转)   



  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值