Chinaunix首页 | 论坛 | 博客
  • 博客访问: 398863
  • 博文数量: 101
  • 博客积分: 2207
  • 博客等级: 大尉
  • 技术积分: 2508
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-19 20:45
文章分类

全部博文(101)

文章存档

2013年(15)

2012年(86)

我的朋友

分类: Python/Ruby

2012-08-17 14:40:25

基于python的web开发,这里我们使用linux为开发环境,搭建基于nginx + web.py + fastcgi
有些基本基本概念解释下,哈哈,因为我不懂
1.wsgi为Web服务器网关接口(Python Web Server Gateway Interface,缩写为WSGI)是是为Python语言定义的Web服务器Web应用程序框架之间的一种简单而通用的接口。自从WSGI被开发出来以后,许多其它语言中也出现了类似接口
2.uwsgi,另一种python定义的web服务器和web应用的接口
3.REST服务,REST(Representational State Transfer表述性状态转移)是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性。
4.CRUD是指在做计算处理时的增加(Create)、查询(Retrieve)(重新得到数据)、更新(Update)和删除(Delete)几个单词的首字母简写。主要被用在描述软件系统中数据库或者持久层的基本操作功能

以下内容主要来自

需要的软件
0.7以上版本,我使用的是nginx 0.9.2
我使用的web.py-0.37
1.6.3
1.0

nginx的配置请参看官方文档
spawn-fcgi是lighttpd的一个子项目用于多进程管理
webpy和flup安装方式为解压后运行python setup.py install

安装编写index.py

点击(此处)折叠或打开

  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-

  3. import web

  4. urls = ("/.*", "hello")
  5. app = web.application(urls, globals())

  6. class hello:
  7.     def GET(self):
  8.         return 'Hello, world!'

  9. if __name__ == "__main__":
  10.     web.wsgi.runwsgi = lambda func, addr=None: web.wsgi.runfcgi(func, addr)
  11.     app.run()
注意index.py需要使用命令chmod +x index.py加入可执行权限

将index.py放入/data/www(我所使用的目录你可以修改)

修改nginx.conf配置
index要加入index.py

Nginx的配置加入

点击(此处)折叠或打开

  1. location / {
  2.         fastcgi_param REQUEST_METHOD $request_method;
  3.         fastcgi_param QUERY_STRING $query_string;
  4.         fastcgi_param CONTENT_TYPE $content_type;
  5.         fastcgi_param CONTENT_LENGTH $content_length;
  6.         fastcgi_param GATEWAY_INTERFACE CGI/1.1;
  7.         fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
  8.         fastcgi_param REMOTE_ADDR $remote_addr;
  9.         fastcgi_param REMOTE_PORT $remote_port;
  10.         fastcgi_param SERVER_ADDR $server_addr;
  11.         fastcgi_param SERVER_PORT $server_port;
  12.         fastcgi_param SERVER_NAME $server_name;
  13.         fastcgi_param SERVER_PROTOCOL $server_protocol;
  14.         fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
  15.         fastcgi_param PATH_INFO $fastcgi_script_name;
  16.         fastcgi_pass 127.0.0.1:9002;
  17. }
使用Spawn-fcgi
spawn-fcgi -d /data/www -f /data/www/index.py -a 127.0.0.1 -p 9002
如果报错为126,说明index.py没有可执行权限
netstat -lnp | grep 9002参考是否启动成功
我运行的实际为
spawn-fcgi -d /data/www -f /data/www/index.py -a 127.0.0.1 -p 9002 -F 2
启动2个进程
启动nginx
浏览器输入地址
成功结束

参考的文章如下


阅读(7126) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~