2013-02-05 29 views
2

目前,我正在为公司编写Web界面。Python中的包和模块,用于使用Flask创建Web应用程序

该web界面基于python微框架Flask。我想用MVC原理来构建这个接口。我有一些疑问。

该模型将包含SQLAlchemy帮助下的ORM映射数据,在那里没有问题。
这些观点是基于一些HTML和CSS,我不认为这里也会有问题。

控制器另一方面是麻烦的。
我想单独的页面进入模块和脚本应用到独立的模块,并携带好所有这些模块集成到控制器的包装,例如像:

  • 会话模块(登录/退出/饼干)
  • 管理员模块(管理注册帐户/内容/等)
  • 应用程序脚本1个模块
  • 应用程序脚本2模块
  • 应用程序脚本3模块

我明白,要呈现模板,您需要使用路由等。但我该如何做到这一点,如果某个链接被调用,它会调用特定模块并从那里拉出方法。是否可以为路由和路由中的每个方法创建一个主控制器我导入上述模块之一?

@app.route('/') 
    def index(): 
    return render_template("index.html") 

@app.route('/login/', methods = ('GET', 'POST')) 
    def login(): 
    from session import login 
    -> call method from 'login' here 

@app.route('/account/<username>', methods = ('GET', 'POST')) 
    def login(): 
    from administrator import view_account 
    -> call method from 'view_account' here 

这是一个很好的做法吗? 或者我应该从头文件开始并导入包中的每个模块。 我的第一个想法是防止应用程序由于脚本的大小而长时间加载,如果需要该模块的页面被访问或者类似的话,只有某个模块会被调用。

回答

3

如果我收到了你的问题的权利,那么你肯定要使用蓝图:)更多的documentation

基本上,这就是如何使瓶应用模块化没有一个控制器采用进口有所有可能的模块方式或其他一些黑客。

在这里您可以找到使用蓝图的example of application

相关问题