2013-02-05 55 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

相關問題