web.py 环境的配置以及一些basic knowledge

3 篇文章 0 订阅
1 篇文章 0 订阅

       web.py是一个小巧灵活的基于python的web应用开发框架。相比于j2ee,效率要高很多,但是我这样的初学者来看,感觉功能上还是差前者很多。通过这篇博客简单介绍一下web.py, 并且以自己开发的一个例子的一部分作为实例来演示。

一、web.py的安装

web.py的安装方式也主要有两种,一种是源码安装,一种是采用easy_install的方式安装。我的系统是ubuntu12.04 64位OS

1. 源码安装:

1) 下载源码包

http://webpy.org/static/web.py-0.37.tar.gz


或者是获得最新的开发版本

https://github.com/webpy/webpy/tarball/master

进入到该project的root dir, 执行;

python setup.py install

如果有问题基本上是权限的问题,sudo就可以解决。别的问题我还没遇到,以后如果遇到了可以补充,也欢迎大家留言补充。

2) 执行如下语句:

sudo easy_install web.py

或者是:

sudo pip install web.py

也可以安装成功,官网上推荐第2)中方式,我是用第一种方式安装成功的。

二、web.py的框架

先看代码,大致就可以明白了:

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

import web

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

class hello:
	def GET(self):
		return 'Hello, world!'

if __name__ == "__main__":
#	web.wsgi.runwsgi = lambda func, addr=None: web.wsgi.runfcgi(func, addr)
	app.run()

        从上面的代码可以看到,主要有三部分组成,第一部分是最终要的URL部分,这个是你所做的web应用中所有涉及到的url,包括你提交表单时涉及到的url,而每个url后面会有一个引号包含的字符串,里面是一个类名,意思是这个url的相关由这个类来处理,一般都是两个函数,get函数和post函数,来处理发来的http请求。具体的可以看web.py提供的相关文档。已经有中文的翻译版。上面的代码可以直接运行。

三、开发环境的配置

        有了简单的代码,我们就应该让这个应用工作起来。所以这里说一下我的开发环境。vim作为强大的工具来写code,至于vim如何配置成一个得心应手的IDE大家就自己上网去查查吧。除此之外,我们还要搭建服务器来跑写好的web app。虽然web.py集成了一个内部的服务器,直接执行python file.py就可以开启进程执行一个web应用程序。这个可以作为调试来用。真是环境下显然还是要配置服务器。

        官网上提供了很多配置服务器的选择。apache和nginx连接wsgi或者fastcgi。我配置过两种服务器,分享一下:

1) webpy+apache with mod_msgi on ubuntu

详见http://webpy.org/cookbook/mod_wsgi-apache-ubuntu 按照这个wiki肯定能够配置成功。我主要说说怎么开启服务器,怎样查看log。

apache的重启,启动和停止

sudo /etc/init.d/apache2 restart 
sudo /etc/init.d/apache2 start 
sudo /etc/init.d/apache2 stop

apache的log

cd /var/log/apache2/
2)  webpy+nginx with fastcgi

详见http://webpy.org/cookbook/fastcgi-nginx

这个wiki讲的不是很详细,我主要谢谢这个服务器的搭建

apt-get install nginx
apt-get install spawn-fcgi   
wget http://www.saddi.com/software/flup/dist/flup-1.0.2.tar.gz
tar xvzf flup-1.0.2.tar.gz
cd flup-1.0.2
python setup.py install

flup的安装可以放在你所希望的目录下,我的软件一般安装在/usr/local/src下。以上步骤完成了安装包的安装工作,下面开始配置。

a. 配置nginx

server {
		listen 80;
		server_name 0.0.0.0;
		root /home/hadoop/git/webpy-app;
		location / {
			include fastcgi_params;
			fastcgi_param SCRIPT_NAME "";
			fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;  # [1]
			fastcgi_param PATH_INFO $fastcgi_script_name;        # [2]
			fastcgi_pass 127.0.0.1:9002;
		}
		location /static/ {
			if (-f $request_filename) {
				rewrite ^/static/(.*)$  /static/$1 break;
			}
		}
	}

其中 server_name 0.0.0.0 这句话决定了你以后写的app部署之后,在浏览器中访问0.0.0.0就可以了。

root /home/hadoop/git/webpy-app 这句话决定了你的code的dir

fastcgi_param SCRIPT_NAME "" 这句话是我后来加上的,保证了跳转的正确执行。一开始我发现在code里面写的 raise web.seeother("/")无法执行,加上这句话后就部署后执行了。

b. 启动spawn-fcgi

spawn-fcgi -d $rootdir -f $rootdir/code.py -a 127.0.0.1 -p 9002

c. 启动nginx

/etc/init.d/nginx start
这样就可以通过浏览器访问了

四、webpy常用的一些东西,为以后开发先准备着

写一个web应用,后台的db肯定是少不了的,web.py对db的支持很好,对db的操作很方便,而且为我们自动完成了数据库的连接与断开。大家可以看http://webpy.org/cookbook/的databases学习,非常方便。

另外,对session和cookie的操作也非常方便,在下一篇博客中详细描述。

参考资料:http://webpy.org/

先写到这里,下一篇博客接着这篇,写实现用户注册,认证,自动登录等功能,算是一个小的应用。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值