Python __init__.py在实际项目中的作用

init.py的作用

init.py该文件的作用就是相当于把自身整个文件夹当作一个包来管理,每当有外部import的时候,就会自动执行里面的函数。
如果用pycharm工具创建python package时,这个文件就会自动创建,但是是空白的。

拓展用法

因为如果有外部import的时候,就会自动执行里面的函数,这个时候,就可以把包的引入加入其中,从而简化整个系统的代码。
假设Flask项目中的Blueprint在项目的application\view\admin\ 包下面:
在这里插入图片描述
那么,在admin包下面的__init__.py文件中的代码,可以写成这样:

from flask import Flask

from applications.view.admin.admin_log import admin_log
from applications.view.admin.dict import admin_dict
from applications.view.admin.index import admin_bp

def register_admin_views(app: Flask):
    app.register_blueprint(admin_bp)
    app.register_blueprint(admin_user)
    app.register_blueprint(admin_file)

篇幅需要,省略了部分代码。

其中关键点就是这个文件中,定义了一个函数:register_admin_views,它把所有的blueprint都注册了。

在view下面的__init.py__的文件内容就可以是这样的:

from applications.view.admin import register_admin_views

def init_view(app):
    register_admin_views(app)

关键点是这个里面定义了一个函数,统一初始化了所有的view

同理:application包下面的__init__.py文件,是类似这样的:

import os
from flask import Flask

from applications.view import init_view

def create_app(config_name=None):
	app = Flask(os.path.abspath(os.path.join(os.path.dirname(__file__), "..")))
    # 注册路由
    init_view(app)

	return app

关键点是在这里创建app并返回。

同理在最外面的app.py里面,就可以这样调用了:

from applications import create_app
app = create_app()

if __name__ == '__main__':
    app.run()

所有的初始化都是在__init__.py文件中完成。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值