foo*_*yee 15 python google-app-engine web-applications
我有一个关于拆分main.py文件的问题.
现在,我在main.py中有所有内容.我没有其他.py文件.在到达我想编辑的部分之前,我总是需要滚动长行代码.
我该如何拆分?(我将有超过20页,所以这意味着如果我不拆分它,main.py将是巨大的.
PS:另外,我注意到我每次都必须设置模板值,模板路径和调用template.render.有什么方法可以缩短它们吗?
码:
# everything here in main.py
class MainPage(webapp.RequestHandler):
def get(self):
# Models are queried here, results transferred to template_values
template_values = {
'value1': value1,
'value2': value2,
'value3': value3,
}
path = os.path.join(os.path.dirname(__file__), 'index.html')
self.response.out.write(template.render(path, template_values))
class Page2(webapp.RequestHandler):
def get(self):
# Models are queried here, results transferred to template_values
template_values = {
'value1': value1,
'value2': value2,
'value3': value3,
}
path = os.path.join(os.path.dirname(__file__), 'index.html')
self.response.out.write(template.render(path, template_values))
class Page3(webapp.RequestHandler):
def get(self):
# Models are queried here, results transferred to template_values
template_values = {
'value1': value1,
'value2': value2,
'value3': value3,
}
path = os.path.join(os.path.dirname(__file__), 'index.html')
self.response.out.write(template.render(path, template_values))
application = webapp.WSGIApplication(
[('/', MainPage),
('/page2', Page2)
('/page3', Page3)],
debug=True)
def main():
run_wsgi_app(application)
if __name__ == "__main__":
main()
Run Code Online (Sandbox Code Playgroud)
Bla*_*rad 22
拆分代码与拆分任何Python应用程序的代码没什么不同 - 找到一堆相关代码,要移动到另一个文件,将其移动到该文件,然后将其导入主处理程序文件.
例如,您可以将Page2代码移动到page2.py,put
import page2
Run Code Online (Sandbox Code Playgroud)
在你的文件的顶部,并改变你的映射来加载/page2
从page2.Page2
(你可能想在这种情况下,重命名这些类...
或者,您可以通过编辑app.yaml
文件来使单独的.py文件处理不同的(页面组)页面,如脚本处理程序中所述.
您可以将模板处理代码包装在一个便利函数中并调用它,以减少重复的代码.您可以简化模板值的加载,但是一旦想要渲染,就可以调用类似的方法
def render(template_file, template_values):
path = os.path.join(os.path.dirname(__file__), template_file)
self.response.out.write(template.render(path, template_values))
Run Code Online (Sandbox Code Playgroud)
这不是很节省,但它更具可读性.可能你想要移动render
到一个不同的文件,import
它可以在你想要的地方.
归档时间: |
|
查看次数: |
6624 次 |
最近记录: |