标签:python package django structure
我需要将两个Django应用程序合并到一个可重复使用的应用程序中.两者都不是特别大,但它们肯定不是简单的应用程序,为了保持可读性/理智性,我试图保持两个应用程序在某种程度上分离.
我可以将每个应用程序设置为子包(这将是实现此目的的pythonic方式),或者我可以坚持Django的约定并在每种情况下单独拆分功能.
Pythonic’子包’方法:
package
|-- __init__.py
|-- views.py
|-- models.py # imports models from both sub-packages
|-- tests.py # imports TestCase instances from both sub-packages
|-- etc. # shared stuff
|-- a
| |-- __init__.py
| |-- views.py
| |-- models.py
| |-- tests.py
| `-- etc. # a-specific code
`-- b
|-- __init__.py
|-- views.py
|-- models.py
|-- tests.py
`-- etc. # b-specific code
或者更直接地安抚Django众神:
package
|-- __init__.py
|-- views
| |-- __init__.py
| |-- a.py
| `-- b.py
|-- models
| |-- __init__.py # imports models from a and b
| |-- a.py
| `-- b.py
|-- tests
| |-- __init__.py # imports TestCase instances from a and b
| |-- a.py
| `-- b.py
`-- etc. # shared/additional files
虽然我现在倾向于前者(感觉有点轻),但我的直觉告诉我,虽然两者都有效(并且都涉及导入’hacks’以符合Django的结构),但最好的选择取决于a的内容.和b – 具体是代码共享多少或特定于应用程序.在每个子目录中不断重复__ init__.py,a.py,b.py模式是不对的!
我有兴趣知道哪些人更适合处理Python的人!
PS.
我知道他们可以作为两个不同的应用程序生活,但他们是如此相互依赖,我觉得他们应该合并! (甚至除了单个Django应用程序的改进的可移植性之外)
解决方法:
Flat优于嵌套.
从两个对等应用程序构建的“复合”应用程序很好.它运作良好.
它通过允许两个组件在更大的应用程序中成为“即插即用”选项来促进重用.
除非你被迫,否则不要筑巢.强迫你嵌套的首要原因是名称冲突.你没有这个,所以你真的不需要任何嵌套.
标签:python,package,django,structure 来源: https://codeday.me/bug/20190626/1298953.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。