序
在一个平凡的下午,肥宅原接到了学长的电话,问我有没有兴趣接手他自己写过的APP,并且把它的后台重构以下。想到下学期没有一门能激奋人心的与计算机相关的课程,于是我就开开心心的接盘了 ╯-____-)╯~═╩═╩═。
始
说句实在话,接盘前自己真的十分慌张((*゜Д゜)ゞ”,毕竟寄几要对寄几有个清醒的认识啊!
而且,众所周知大公司的代码都和屎山是一样的,虽然这个小项目不会很复杂,但是再看到代码前,心情还是很复杂的,因为
学长说这是他们刚开始接触Flask的时候写的(o´_`o)・・・
第一眼看到这个项目结构的时候还有点小懵的,因为那个dao一看就是拼音,但是我是真的想不出来它是什么东西啊(๑ó﹏ò๑)
我个人不是很喜欢这样结构,因为视图函数我找了好久。。。而且个人觉得开头的三个包也是可以放在util下面的
他的项目结构就很清楚了,而且看他的包名也能大概知道都是做什么的,并且十分简洁优雅。
学长的一个项目结构这个项目的结构就和七月老师结构很相像,毕竟看的是他的网课 [手动滑稽]。而且util下的每个util可能会有数量不等的文件所以基本上都放在了文件夹里。
而且与后两个结构相比,第一个就显得有些许繁琐,不是那么的简洁了。
项目结构模式
我也特意的去查找了下Flask的项目结构应当怎么写,大概分为下面几种。
单一模块
在许多Flask例子里,你会看到它们把所有的代码放到一个单一文件中,通常是app.py。对于一些微(写完就丢)项目来说这恰到好处,毕竟你只需要处理几个路由(route)并且只有百来行代码。(示例用的应用就是这样)
app.py
config.py
requirements.txt
static/
templates/
在这个例子中,应用逻辑部分会存放在app.py
包
当你开始在一个变得更加复杂的项目上工作时,单一模块就会造成严重的问题。 你需要为模型(model)和表单(form)定义多个类,而它们会跟你的路由和配置代码又吵又闹。所有的一切让你焦头烂额。 为了解决这个问题,我们得把应用中不同的组件分开到单独的、高内聚的一组模块 - 也即是包 - 之中
config.py
requirements.txt
run.py
instance/
/config.py
yourapp/
/__init__.py
/views.py
/models.py
/forms.py
/static/
/templates/
这个结构允许你理智地整理你的应用的不同组件。 有关模型的类定义全待在models.py,而路由定义在views.py,有关表单的类定义全待在forms.py
末
最后我想放上Gayhub上几个比较火的项目和他们的主体项目结构。
nodejs
angular
TensorFlow
网友评论