有没有办法在Python中管理大量的导入语句?

如何解决有没有办法在Python中管理大量的导入语句?

我正在使用Flask-RESTFul API,在我的app.py文件中,有很多导入语句,如下所示。

from flask import Flask
from flask_restful import Api

from apis.ChambAvail import ChambAvail
from apis.ChambAvailBal import ChambAvailBal
from apis.ChambTwInhibit import ChambTwInhibit
from apis.CurrentWip import CurrentWip
from apis.Detail import Detail
from apis.IncomingWip import IncomingWip
from apis.Info import Info
from apis.Manage import Manage
from apis.MfCount import MfCount
from apis.OtherHold import OtherHold
from apis.PqeDue import PqeDue
from apis.QualInhibit import QualInhibit
from apis.ReleaseBef import ReleaseBef
from apis.RfInhibit import RfInhibit
from apis.SketchDetailedLot import SketchDetailedLot
from apis.SketchLotDetail import SketchLotDetail
from apis.SketchMainDetail import SketchMainDetail
from apis.SketchMainRC import SketchMainRC
from apis.SketchDesignInfo import SketchDesignInfo
from apis.SketchOneDetail import SketchOneDetail
from apis.SketchOneLotDetail import SketchOneLotDetail
from apis.SketchOneMain import SketchOneMain
from apis.SketchOneNearestLot import SketchOneNearestLot
from apis.SketchTimeList import SketchTimeList
from apis.SketchWsgList import SketchWsgList
from apis.TakeEquipDetail import TakeEquipDetail
from apis.TakeEquipLotDetail import TakeEquipLotDetail
from apis.TakeEquipMain import TakeEquipMain
from apis.TakeOneDetail import TakeOneDetail
from apis.TakeOneEquipData import TakeOneEquipData
from apis.TakeOneMain import TakeOneMain
from apis.TakeOneRADetail import TakeOneRADetail
from apis.UpdBufInputCapacity import UpdBufInputCapacity
from apis.UpdEohInputCapacity import UpdEohInputCapacity
from dbmanager import datasource
from logmanager.setlogger import logger
from utils import config_reader

env = 'test'
app = Flask(__name__)
api = Api(app)

api.add_resource(SketchMainRC,'/SketchMainrc')
api.add_resource(SketchDesignInfo,'/SketchDesigninfo')
api.add_resource(SketchWsgList,'/Sketchwsglist')
api.add_resource(SketchMainDetail,'/Sketchmaindetail')
api.add_resource(SketchLotDetail,'/Sketchlotdetail')
api.add_resource(SketchOneMain,'/SketchOneMain')
api.add_resource(SketchOneDetail,'/SketchOnedetail')
api.add_resource(SketchOneLotDetail,'/SketchOnelotdetail')
api.add_resource(SketchOneNearestLot,'/SketchOnenearestlot')
api.add_resource(SketchDetailedLot,'/Sketchdetailedlot')
api.add_resource(SketchTimeList,'/Sketchtimelist')
api.add_resource(TakeEquipMain,'/TakeequipMain')
api.add_resource(TakeEquipDetail,'/Takeequipdetail')
api.add_resource(TakeEquipLotDetail,'/Takeequiplotdetail')
api.add_resource(TakeOneMain,'/TakeOneMain')
api.add_resource(TakeOneDetail,'/TakeOnedetail')
api.add_resource(TakeOneRADetail,'/TakeOneradetail')
api.add_resource(TakeOneEquipData,'/TakeOneequipData')
api.add_resource(ChambAvail,'/chambavail')
api.add_resource(ChambAvailBal,'/chambavailbal')
api.add_resource(ChambTwInhibit,'/chambtwinhibit')
api.add_resource(CurrentWip,'/currentwip')
api.add_resource(IncomingWip,'/incomingwip')
api.add_resource(Detail,'/detail')
api.add_resource(Manage,'/manage')
api.add_resource(MfCount,'/mfcount')
api.add_resource(OtherHold,'/otherhold')
api.add_resource(PqeDue,'/pqedue')
api.add_resource(QualInhibit,'/qualinhibit')
api.add_resource(ReleaseBef,'/releasebef')
api.add_resource(RfInhibit,'/rfinhibit')
api.add_resource(Info,'/info')
api.add_resource(InputCapacity,'/inputcapacity')
api.add_resource(InputCapacity,'/inputcapacity')

app.ls_sf_db_env = 'test'
app.ls_config = config_reader.get_config('test')

# Initialise the connection pool
datasource.initial_all_fab_engine(app)

if __name__ == '__main__':
    logger.info('Starting the server')
    app.run(port=5000,debug=True)

下面是我的项目结构。

enter image description here

这些只是我完成的一些API,还有100多个。我是Python的新手,尤其是Flask-RESTFul API开发。每个API都有单独的类,我认为代码看起来更干净。但是在我的app.py文件中,这些导入语句正在堆积。在我的app.py文件中,有没有更好的方法添加/管理这些import语句以及add.resource()语句?有人可以让我知道是否可以以其他方式导入所有这些语句并保持我的app.py干净吗? 任何帮助表示赞赏。

解决方法

我会做一些基于路径的魔术。

以下代码段将列出import com.hortonworks.hwc.HiveWarehouseSession df.write .format("com.hortonworks.spark.sql.hive.llap.HiveWarehouseConnector") .mode("append") .option("table","myDatabase.myTable") .save() 子目录中的所有https_redirect@file文件,将它们导入为模块,提取与该文件相同名称的类,并将其注册在.py端点下

apis/

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?