python web.py 404_webpy常见问题

webpy使用mod_wsgi运行时会遇到一些特别的错误,搜索后发现这篇文章不错,里面的问题我有碰到的也有没碰到的。

原文如下:

1.所有的模板只能共享一个HTML标签,如的,在其他地方不能有任何关于HTML信息之类的东西,如头文件,,

之类的,否则出错,其它模板文件也一样

2.模板注释一定要写在末尾,至少要在def with后面,否则会有莫名其妙的错误!不管什么情况,def with必须在第一行!

3.用mod_wsgi运行web.py时,要指明模板路径,否则显示错误:raise AttributeError, “No template named ” + name

AttributeError: No template named index

解决:

template_root = os.path.join(os.path.dirname(‘D:/pythonStudy/WebpyStudy/projects/blogs/’), ‘templates’)

render = web.template.render(os.path.abspath(os.path.dirname(‘D:/pythonStudy/WebpyStudy/projects/blogs’))+’/templates/’, base = ‘base’, globals=t_globals)#这里要标明全局变量!!!

4.在web.py用到datestr:

t_globals = {

‘datestr’:web.datestr

}

运行打开http://localhost:8080/显示Invalid format string

错误显示datestr ValueError: Invalid format string

这时需要重新建表,即要把数据库之前创建的那个表先删除,再重新建立,我用Pycharm,换了一个主题(从Default改成monokai),跟这个有关

5.t_globals = dict(

datestr = web.datestr,

static = ‘/static’,#必须在这里加上这一行,才可以在index.html中显示static文件夹下的东西,如图片,调用时可这样:”webpy”/

)

6.自定义404错误

def notfound():

return web.notfound(‘噢,没有找到!’)

app.notfound= notfound

7.路径可用正则表达式匹配

大部分时候简单的正则可以适用你的常规应用了,数字用 (\d+),字符串用 (.*),注意不要漏写

像/,/help,/item/(\d+)(\d+将匹配数字),后面是接受请求的类名称

8.GET函数用于请求网页文本,还有POST函数,经常被用在提交form,如提交一个去做什么事情的请求时,就用POST

GET的URL可以被搜索引擎索引,并通过搜索引擎访问,虽然大部分页面你希望被索引,但是少数类似订单处理的页面是不希望被索引的

9.问题:在浏览器显示500错误,查Apache的log显示”ImportError: No module named model”

解决:在顶部加上这一行就行,注意import model要放在后面,同样的方法可以解决”No module named web”的方法(感谢CPyUG的Ken同学,还有别的问题可至:http://webpy.org/install

abspath = os.path.dirname(“D:/pythonStudy/WebpyStudy/projects/blogs/”)

sys.path.append(abspath)

os.chdir(abspath)

import model

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值