首先感谢webpy作者Aaron H. Swartz (1986 – 2013)。

第一次接触Python开发网站是在今年3月底,使用的是Django,当时也是第一次接触网站开发,对Apache也不熟悉(其实是只知道一个名字),当时的各种配置让我感觉到要崩溃了,好歹在windows下配置成功了一次。后来在linux下死活都不行,原来是忘了chown py文件给apache,现在记忆犹新。Django呢,确实很完善,文档也不少,在目前算是python web框架中用的最多的,也是最火的。不过我倒不太喜欢这种各种被包办被绑架的感觉,后来一直都在找python web框架,无奈就那些,也可能是自己了解不多。不过,有个我也忘了是怎么回事的机缘,让我有兴趣了解了下webpy,感觉比较符合我自己的口味。简单,明了。前段时间用PHP开发了一个微信公众平台的小网站,现在再来看Python web开发也更熟悉吧。言归正传,开始webpy的Hello World(好吧,其实是官网上的代码,我再加点修饰)。关于window 64bit下的python web开发环境的搭建请参考Windows 64bit下安装Apache+Python+mod_wsgi+php。

webpy安装

到官网下载包,通常的python包的安装方式,python setup.py install。安装成功测试,就是打开一个python的console,然后import web,没出错就成功了。

Hello webpy!

这个是在官网为了表明webpy是多么的简洁,贴在首页的的一段代码。那urls就是使用正则表达式来配置url的处理类。新建一个文件code.py,把下面的代码粘贴进去,然后在console里面输入python code.py,然后回车。就开启了一个在8080端口的http服务(当然要是在没有语法错误的情况下)。在浏览器中打开http://localhost:8080/就可以看到Hello webpy!了。
import weburls = ('/(.*)', 'hello'
)
app = web.application(urls, globals())class hello:        def GET(self, name):if not name: name = 'webpy'return 'Hello, ' + name + '!'if __name__ == "__main__":app.run()

上面的代码只是为了说明webpy的简单,官网上提供了一个常用的代码框架。就是如下面的目录树

webapp/
static/
js/
css/
images/
templates/
sql/
db.py
app.py
config.py
view.py
主要分为静态文件、模板文件(*.html)、sql语句、数据库查询函数、网站应用的主文件、配置文件、视图文件。
简单来说,静态文件就是网站中所需要的图片、css和js文件等。模板文件是webpy自用的模板系统,就是将数据填充到模板中生成html文件。sql则是使用的sql文件。db.py主要包含所使用的数据库的查询修改删除等进一步包装的函数。app.py则把url绑定给处理的类,然后生成application对象。view.py主要包含html中局部可以复用的数据填充模板的方法。config.py则是配置数据库用户名密码,缓存,DEBUG开关等等。当然你也可以不用上面的,上面的对一个比较大型的应该是必不可少的。这个代码架构来自http://webpy.org/skeleton/0.3。

在Apache生产环境下的webpy

在Apache的生产环境下使用webpy,主要两个方面的配置和修改。

Apache的配置

在你的httpd.conf中添加下面的一段。下面的一段是我自己的,大家可以根据自己的apache以及web应用的位置修改。demo.py就是上一个部分的应用主文件app.py,而static则是上一个部分的static。静态文件夹配置不是必要的,但是下面的两个理由让你最好配置一下。1、为了性能。apache直接处理静态文件,比转交给webpy处理更加直接。2、为了不修改静态文件的地址。webpy开发环境与apache生产环境的根目录是不一样的,因此不做以下映射的话是要改不少东西的。另外还有apache文件夹的权限之类的,参考http://webpy.org/cookbook/mod_wsgi-apache。不过我是在windows下,貌似只添加下面的就可以了。
<IfModule wsgi_module>WSGIScriptAlias /demo "D:/Program Files/Apache Software Foundation/Apache2.4/htdocs/webpy/demo.py/"Alias /static "D:/Program Files/Apache Software Foundation/Apache2.4/htdocs/webpy/static"AddType text/html .py
</IfModule>

webpy主应用文件app.py的修改

如果你app.py的代码中有import app.py同文件夹下的.py文件,那么在import它们之前添加以下代码(对于其他import 应用目录下py文件的文件也需要修改)
import os,sys
workingpath = os.path.dirname(__file__)
sys.path.append(workingpath)

这是把app.py所在的文件夹路径添加到python的环境变量中,这样在python就可以找得到。同样这个也是因为apache的根目录和web app的根目录是不一致的。如果只是import python自己的包或者安装的包(比如webpy)的话是不需要的。PS:如果__file__报错的话,请自行google找替代办法(就是使用sys.argv[0])。

app.py中必须有一个application变量,并且让它等于Hello webpy!部分的app.wsgifunc(),不然mod_wsgi模块是会报错的。

下面是我的一个例子的demo.py(前面所说的app.py)

import sys, os, time
import urllib,urllib2,cookielib
import webworkingpath = os.path.dirname(__file__)
sys.path.append(workingpath)from view import renderurls = ('/index', 'index','/login','login',)app=web.application(urls,globals())
class index:def GET(self):return render.base("myview",render.news(10),"news")class login:def GET(self):return render.base("myview",render.login(10),"login")application = app.wsgifunc()
if __name__=="__main__":app.internalerror=web.debugerrorapp.run()

另外,在调试或者在修改代码之后,注意删除*.pyc文件。不然你可能找了半天都不知道是为什么你的修改没有反映到你的网站上。因为是动态的,所以apache并不需要重启。建议建立一个有下面代码的.bat文件在根目录下,每次点击一下就行了。

del *.pyc

完成了上面的就可以开始webpy的DIY之旅了。

webpy的Hello World相关推荐

  1. webpy + nginx + fastcgi 构建python应用

    1.准备环境 CentOs  6.3 nginx-1.4.2.tar.gz            http://nginx.org/download/nginx-1.4.2.tar.gz openss ...

  2. Webpy 0.3新手指南

    一.简单调用 1.安装ActivePython-2.7.2.5-win32-x86.msi 2.http://webpy.org下载web.py-0.36.tar.gz,解压 3.转到解压目录web. ...

  3. nginx fastcgi python_Nginx + webpy 和FastCGI搭建webpy环境

    web.py 是一个轻量级Python web框架,它简单而且功能大.web.py是一个开源项目. 1.所需要的软件: Nginx nginx-1.4.7.tar.gz (需要包含fastcgi和re ...

  4. 跳过 centos部署 webpy的各种坑

    用centos部署webpy发现的各种坑: 1.python 版本: 2.中文编码: 3.web模块路径: 在命令行里输入python,能import web,但是网站错误报告一直报告没有找到web模 ...

  5. nginx python webpy 配置安装

    安装webpy $ wget http://webpy.org/static/web.py-0.34.tar.gz $ tar xvzf web.py-0.34.tar.gz $ cd web.py- ...

  6. python mssql session_python的web框架webpy【session amp; cookie】五 - 莫激动 - ITeye博客

    webpty中使用session非常简单 import web web.config.debug = False urls = ( "/count", "count&qu ...

  7. 在windows下安装webpy

    [prerequisite] 1. install python http://www.python.org/getit/releases/2.7.3/ 2. download webpy http: ...

  8. Web.py Cookbook 简体中文版 - 在webpy中使用Cheetah模板引擎

    问题: 怎样在webpy中使用Cheetah模板引擎? 解决: 您需要先安装webpy(0.3)和Cheetah:http://www.cheetahtemplate.org/. 然后尝试使用下面的代 ...

  9. python编程(webpy + gunicorn + nginx部署)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 之前虽然也用nginx + uwsgi + webpy的方法部署过网站,但是用了gunicorn ...

  10. python编程(nginx、uwsgi和webpy)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 生产中,常用nginx+uwsgi+webpy的方法进行环境部署,今天学习了一下怎么用这几个工具 ...

最新文章

  1. phpexcel导出超过26列解决方案
  2. 谣言粉碎机 - 极短时间内发送两个Odata request,前一个会自动被cancel掉?
  3. aac fhg lc哪一个模式_旅游没电别发愁,一个充电头,助你游遍全球
  4. cron 每10分钟执行一次_早餐儿子最爱它,简单卷一卷,10分钟做一大盘,三天两头吃一次...
  5. OSI七层协议与TCP连接
  6. mysql openwrt 编译_如何编译OpenWrt
  7. Tensorflow:分类模型评估
  8. 那些让程序员炸毛的奇葩需求,说起来满满的都是泪!
  9. 龚本灿c语言程序设计,C语言程序设计习题集(高等学校教材)
  10. 常见耳机品牌简介及鉴赏
  11. 【大学分析】985只要国家线?华东师范大学考研情况如何?
  12. 初学者怎样学好Java
  13. 女生无法拒绝的表白拼图
  14. ts 之 Pick 和 Omit
  15. proteus学习教程大全
  16. 012-基于 git hooks 的前端代码质量控制解决方案
  17. 使用three.js渲染瓦片地球-第一篇
  18. Pyhton操作Neo4j图数据库实践(南北朝隋唐历史北朝主要人物知识图谱)
  19. 如何从tomcat官网下载各个版本的tomcat?
  20. 1.9 信息系统规划

热门文章

  1. linux搭建pptp服务器
  2. Oracle最无奈错误PLS-00103
  3. 蜗窝科技 spin lock (讲的非常不错)
  4. 旺盛型人格特征和优劣势,旺盛型性格的职业发展方向
  5. 人到底是为了什么活着?
  6. 教育的未来--我的感想
  7. 引进国外SD-WAN技术,凌锐蓝信为企业提供跨境网络连接服务
  8. 用人工智能做广告,它成为第一家走上IPO的人工智能企业
  9. python之sklearn学习笔记
  10. iOS好用的第三方框架/插件