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(蓝本名.视图函数名),需要有.


猜你喜欢

转载自blog.csdn.net/CSDN_Gjx/article/details/79306262