关于 flask 项目中的结构问题(前台系统和后台系统的共存问题)

2019-11-13 15:11:51 +08:00
 kayseen

在一个项目中如果有前台系统和后台系统, 我的文件结构如下:

-总目录:
    -后台系统文件夹:
        -model 文件夹(存放数据模型)
        -view 文件夹(存放视图文件)
    -前台系统文件夹:
        -model 文件夹(存放数据模型)
        -view 文件夹(存放视图文件)
    -后台系统启动文件.py
    -前台系统启动文件.py

在后台系统中会对前台系统中的数据进行增删改查,在后台系统中直接导入使用前台系统中的 model 是会报错的, 然后我选择在后台系统中继承前台系统中的 model,然后再进行增删改查的操作,但是这种方法会触发 mysql 的事务操作,最终导致连接池溢出, 所以想请教大家,这种情况下的 flask 项目,大家是如何处理结构的啊?

2733 次点击
所在节点    Python
15 条回复
renmu
2019-11-13 15:44:38 +08:00
你在前台定义接口后给后台用,不要直接操作数据库(尽快前后端分离吧
kayseen
2019-11-13 15:50:13 +08:00
@renmu 现在就是前后端分离啊,现在就是前端调用接口,我们需要对数据进行修改
Latin
2019-11-13 16:02:03 +08:00
https://sm.ms/image/oYPrtqfEn2MKIOy
我还是选择黏在一起
ipwx
2019-11-13 16:07:04 +08:00
你程序可以一个软件包写完,方便互相引用。但是你前后台系统完全可以启动两个进程或者 uwsgi host 呀~ 这有啥困难的。然后 nginx 做一下 dispatch 不就行了。

如果前台系统要向后台系统插任务,就再上 celery 框架呀,然后队列就变成了第三个进程。
anaf
2019-11-13 16:12:57 +08:00
楼上才是正常的目录 !↑
Vegetable
2019-11-13 16:15:23 +08:00
我这里前台后台是共用一套 model 的,而不是定义在两个地方.
后台存在的意义难道不是管理前台的 model 吗?这个分开我觉得不太合理
huijiewei
2019-11-13 16:26:22 +08:00
--core
--modules
----backend
----frontend
whoosy
2019-11-13 16:40:11 +08:00
@Latin 咱们是不是一个公司的? ![WechatIMG4.jpeg]( https://i.loli.net/2019/11/13/9b7eM6miOrDVdLj.jpg)
kayseen
2019-11-13 16:54:06 +08:00
@Vegetable
麻烦问一下你的结构,是不是下面这样的:

```
-总目录:
-后台系统文件夹:
-view 文件夹(存放视图文件)
-前台系统文件夹:
-view 文件夹(存放视图文件)
-model 文件夹(存放数据模型)
-后台系统启动文件.py
-前台系统启动文件.py

```
yunchuanwu
2019-11-13 16:54:58 +08:00
一个库的话应该用一个 models.py 解决的,migration 也好做 可以用 SQLAlchemy
Latin
2019-11-13 16:56:55 +08:00
@whoosy hhh,我们公司就我一个人用 Flask 写后台,可以加个好友,交流下技术
kayseen
2019-11-13 17:01:32 +08:00
@Vegetable 刚刚排版乱了,看下图片

![image.png]( https://i.loli.net/2019/11/13/l42ZxUrWXYh8eOL.png)
hp66722667
2019-11-14 09:50:57 +08:00
@Vegetable 前台与后台公用同一个 model 不好吧,例如模型里面有些字段后台需要显示,前台却不能显示岂不是很麻烦
kayseen
2019-11-14 14:00:10 +08:00
@hp66722667 我选择的是继承 model,然后重写方法
hp66722667
2019-11-26 14:07:56 +08:00
@kayseen 直接分开的不就完了么,本来前后台的 model 方法也很大不同

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/619144

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX