1. 程式人生 > >flask_web 大型專案結構化

flask_web 大型專案結構化

專案目錄樹

-flask_web

    -blog

        -app

            -errorblueprint

            -rootblueprint

            -__init__.py

            -db_models.py

            -email_fun.py

            -factory.py

            -form.py

        -evnv

        -__init__.py

        -Config.py

        -flask_web.py

        -requirements.py


藍本放在app資料夾下的兩個子資料夾中,模組化成型,在建立藍本時可以設定兩個引數

template_folder  對應藍本模板資料夾

static_folder   對應藍本靜態檔案資料夾

比如:藍本放置在   app/bp 下,則對應的模板,靜態資料夾應該為 app/bp/template_folder_name(static_folder_name)


要在Create_app()函式中匯入兩個藍本

def create_app(config_name):
    app=Flask(__name__)
    app.config.from_object(config[config_name])
    config[config_name].init_app(app)

    bootstrap.init_app(app)
    db.init_app(app)
    mail.init_app(app)
    from blog.app.rootblueprint.rbp import rootbp
    from blog.app.errorblueprint.ebp import errorbp
    app.register_blueprint(rootbp)
    app.register_blueprint(errorbp)

    return app


使用mysql資料庫時還需要在工廠檔案下匯入:

import pymysql
pymysql.install_as_MySQLdb()

匯入模組、包時儘量寫絕對路徑


在藍本下裝飾器要改成   藍本名.route(....)

url_for(藍本名.檢視函式名),需要有.