TaleLin / lin-cms-flask

🎀A simple and practical CMS implememted by Flask
http://doc.cms.talelin.com/
Other
832 stars 216 forks source link

建议及spetree 兼容问题 #227

Closed 1219295581 closed 1 year ago

1219295581 commented 1 year ago
  1. 本框架采用的是对象转换成字典方式再序列化ORM对象,思路很好。但是ORM经常有外键关系对象,为了处理嵌套及复杂对象序列化,pydantic直接进行序列化的方案看上去更灵活及强大。 是否考虑更新序列化方案? 目前这个框架已经集成了pydantic, 直接用这个序列化感觉还更简洁。
  2. InfoCrud、或BaseCrud 类,目前查询get方法没有集成分页方案,是否增加分页功能? 直接返回list的情况好像不是很多,一般都要分页。 或者有其他方案集成分页。 目前这个框架没有对常用的分页做集成感觉不是很理解,建议增加。
  3. spectree版本为0.7.6, 代码已经很老了,目前最新已经到了1.0.3, 已经发生了很大的变化,看上去本项目代码很久没有更新了,我试图更新最新spectree 及自行修Lin CMS 的spectree, 然鹅我能力有限总是出错。如果有大神能帮忙处理下,我也学习下,那就太感谢了。。。。
1219295581 commented 1 year ago

补充下, 为什么想升级spectree版本, 我按照官方说明操作的,进入首页,点击林间有风,进入swagger ,然鹅。出错了。 { "code": 20000, "message": "The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again.", "request": "GET /apidoc/swagger/" } 我不确定是Lin CMS的问题还是因为我之前第一次安装spectree版本较高降低到0.7.6出现的问题。 总之无法正常使用。而且我查了下flask.url_map, 这个apidoc/swagger 是存在的就是进不去访问不了

1219295581 commented 1 year ago

demo.txt 补充下我的运行环境, spectree就是用不了。

sunlin92 commented 1 year ago
  1. 本框架采用的是对象转换成字典方式再序列化ORM对象,思路很好。但是ORM经常有外键关系对象,为了处理嵌套及复杂对象序列化,pydantic直接进行序列化的方案看上去更灵活及强大。 是否考虑更新序列化方案? 目前这个框架已经集成了pydantic, 直接用这个序列化感觉还更简洁。

这里提到的pydantic方案应该是fastapi目前在使用的,整合的也比较成熟,如果单纯考虑选择api框架可以去试试那一款(实际上spectee在flask上也存在不少局限)。目前lincms内置的JSONEncoder是自己编写的,在lin初始化时也可以自定义挂载序列化的方案。

  1. InfoCrud、或BaseCrud 类,目前查询get方法没有集成分页方案,是否增加分页功能? 直接返回list的情况好像不是很多,一般都要分页。 或者有其他方案集成分页。 目前这个框架没有对常用的分页做集成感觉不是很理解,建议增加。

sqlalchemy的分页api还算方便,集成分页的功能有考虑过,但分页涉及的条件筛选逻辑没有一个很好的封装方案,我们认为处理不好可能徒增学习成本。

  1. spectree版本为0.7.6, 代码已经很老了,目前最新已经到了1.0.3, 已经发生了很大的变化,看上去本项目代码很久没有更新了,我试图更新最新spectree 及自行修Lin CMS 的spectree, 然鹅我能力有限总是出错。如果有大神能帮忙处理下,我也学习下,那就太感谢了。。。。

实际上包括spectree1.x,sqlalchemy 2.0.x , flask 2.2.x等核心库也很久没有升级了,主要原因是个人精力不够用,我也有一段时间没碰过flask了。暂时先维持一个相对稳定可用的版本比激进升级更符合项目目前的实际情况。其中spectree升级需要重构不少东西,这个依赖库也越来越像一个框架了。

如果有兴趣可以联系我,开源项目的改进需要大家互相交流,合作努力。

sunlin92 commented 1 year ago

补充下, 为什么想升级spectree版本, 我按照官方说明操作的,进入首页,点击林间有风,进入swagger ,然鹅。出错了。 { "code": 20000, "message": "The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again.", "request": "GET /apidoc/swagger/" } 我不确定是Lin CMS的问题还是因为我之前第一次安装spectree版本较高降低到0.7.6出现的问题。 总之无法正常使用。而且我查了下flask.url_map, 这个apidoc/swagger 是存在的就是进不去访问不了

使用新的虚拟环境重装试试,我测了一下没问题(sqlalchemy版本被手动降回1.4,最新的分支代码已经锁定低版本)