Web.py 如何在这种情况下访问渲染函数
我刚接触Python和Web.py,但这个问题让我很抓狂。我有一个代码结构,app.py
文件放在网站的根目录下,所有的页面都在一个名为pages
的子目录里。下面是我的app.py代码:
import web
import page.index
urls = (
'/', 'page.index.index',
)
render = web.template.render('templates/', base = "layout") # Start the template
app = web.application(urls, globals()) # Start the app
if __name__ == "__main__":
app.run()
现在,这段代码运行得很好。接下来,在index.py文件中,这是我的代码:
class index:
def GET(self):
testing = 'Hello World'
return render.index(testing)
我遇到的错误是:
<type 'exceptions.NameError'> at /
global name 'render' is not defined
Python /Volumes/Local Disk 2/Work/Casting Board/com/index.py in GET, line 3
Web GET http://127.0.0.1:8080/
简单来说,我想从一个叫做page.index的模块中访问一个叫render
的函数(或者说是方法或类,我刚从PHP转过来,所以不太懂这些术语)。我该怎么解决这个问题呢?
3 个回答
1
你可以直接在你的app.py文件里包含你的索引类(index.py)。这样导入网络模块的时候,就会在你代码的开头引入“render”这个函数的定义。
1
假设 web.template.render()
返回的是一个包含 index()
方法的对象(我对 web.py
不太了解),你需要告诉 Python 这个对象在哪里。
在 index.py
文件中:
import app
然后:
return app.render.index(testing)
1
在index.py这个文件里,你是否应该加上 from web.template import render
这行代码呢?