Flask的模块化实践

既作为前端,又作为后端的我,写flask写了那么多行了,其实它们属于不同的模块,比如登录,注册,聊天,用户画像,那我觉得有必要分一下了,系统化的处理一下,不然找个函数都要划很久。

1.在gpt的帮助下,我先弄一个demo,毕竟flask是我新学的,我之前本是个后端
gpt说项目架构如下:它假设我有三个模块:用户管理、博客管理和评论管理。

your_flask_app/
│
├── app/
│   ├── __init__.py
│   ├── user/
│   │   ├── __init__.py
│   │   ├── views.py
│   │   ├── models.py
│   │   └── forms.py
│   ├── blog/
│   │   ├── __init__.py
│   │   ├── views.py
│   │   ├── models.py
│   │   └── forms.py
│   ├── comment/
│   │   ├── __init__.py
│   │   ├── views.py
│   │   ├── models.py
│   │   └── forms.py
│   └── templates/
│       ├── user/
│       ├── blog/
│       └── comment/
├── config.py
├── run.py
└── requirements.txt

我本来想一个个建文件的,但我想有没有一种类似于vue-cli的脚手架能够生成像vue结构一样,生成flask文件结构呢

当然是有的: flask-base

但是我选择Flask-Application (Flask项目脚手架 -- Flask-Application正式发布-CSDN博客)

因为,我只是想简单的熟悉一下流程,不需要那么复杂 

 但是我发现并没有我想象的那么好用,所以还是自己建吧,完成公司项目的模块化就行

所以,gpt,启动!

我将把可以模块化的代码放到github仓库里,敬请期待:

flask/flask at main · chen-li1314/flask · GitHub

注意用了模块化之后,原来的接口要加上前缀,比如http://192.168.1.140:5000/chat改为

http://192.168.1.140:5000/conversation/chat

来都来了,直接上个大项目吧
DjangoAdmin_Flask_AntdVue: 一款 Python 语言基于Flask、Vue3.x、AntDesign、MySQL等框架精心打造的一款模块化、高性能、企业级的敏捷开发框架,本着简化开发、提升开发效率的初衷触发,框架自研了一套个性化的组件,实现了可插拔的组件式开发方式:单图上传、多图上传、下拉选择、开关按钮、单选按钮、多选按钮、图片裁剪等等一系列个性化、轻量级的组件,是一款真正意义上实现组件化开发的敏捷开发框架。 - Gitee.com

 基于 Python 语言的敏捷开发框架_DjangoAdmin敏捷开发框架Flask+EleVue版本_开发文档

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/19883.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

React 之 mobx-state-tree(Redux替代品) 状态管理

MST(mobx-state-tree)、redux做多组件间全局state管理(类比vuex,父 孙组件状态传递解耦)。 tree type state 树中的每个节点都由两件事来描述: type (事物的形状) 和 data (它当前所处的状态). 最简单的树如下所示: 1.声明类…

Dinky DorisCDC 整库同步到 Doris

doris flinkcdc语法参考 Flink Doris Connector - Apache Doris 参考: Doris Flink DolphinScheduler Dinky 构建开源数据平台_dinky dolphinscheduler flink-CSDN博客

2024年,抖音小店618十大爆款预测!商家抓紧时间上架!

哈喽~我是电商月月 做电商的玩家都知道,一但到了换季或者是节日大促的时候,销量高,是最容易爆单的阶段 而提前上架一些热卖产品,爆单的几率在自己的店铺机会就越大 而最近的一个大型活动,就是618了,抖音…

每日一练 - 路由策略配置工具

01 真题题目 可用于多种路由协议,设定匹配条件,属性匹配后进行设置,由 if-match 和 apply 子句组成 的路由选择工具是? A.IP-Prefix B.community-filter C.as-path-filter D.route-policy 02 真题答案 D 03 答案解析 正确答案是D. Route-Policy。Route-Policy是一种强大的…

只出现一次的数字II ---- 位运算

题目链接 题目: 分析: 对于只出现一次的数字, 他的任意一个bit位, 可能是0或1对于其余出现3次的数字, 假设有3n个数, 那么他们的任意一个bit相加的和可能是3n个0或3n个1那么对于数组中的全部数字的任意一个bit位之和共有三种情况: 3n个1 1 3n13n个0 1 13n个1 0 3n3n个0…

华为认证学习笔记:生成树

以太网交换网络中为了进行链路备份,提高网络可靠性,通常会使用冗余链路。但是使用冗余链路会在交换网络上产生环路,引发广播风暴以及MAC地址表不稳定等故障现象,从而导致用户通信质量较差,甚至通信中断。为解决交换网络…

如何限制上网行为?上网行为管控软件有什么功能?

上网行为的管理与限制对于保障企业安全、提高员工工作效率以及保护孩子健康成长都显得尤为重要。 上网行为管控软件作为一种专业的工具,在这方面发挥着不可替代的作用。 本文将探讨如何限制上网行为,并介绍上网行为管控软件的主要功能。 一、如何限制上…

C++入门——类和对象【3】(6)

前言 本节是C类和对象中的最后一节,学完本节内容并且能够掌握之前所学的所有内容的话,C就可以说是入门了,那我们废话不多说,正式进入今天的学习 1. 再谈构造函数 1.1 引入 我们在栈的背景下来看 栈的代码: ​type…

前端基础1-6 :es6

点击跳转,详细查看es6 const常量 const LIMIT 10; const OBJ_MAP {a: A,A: a }1. 不允许重复声明赋值 var arg1 aarg1 aa// 常量 - ES5Object.defineProperty(window, arg2, {value: aaa,writable: false})// ES6const arg2 aaa2. 块级作用域 if (true) {con…

【技术实操】银河高级服务器操作系统实例分享,达梦数据库服务器 oom 问题分析

1. 服务器环境以及配置 【 机型】 处理器: HUAWEIKunpeng 920 5220 内存: 400518528 kB 主板型号: Chaoqiang K620 series 整机类型/架构: ARM BIOS 版本: KL4.41.028.TF.220224.R 固件版本: KL4.41…

AI能否代替ACE

什么是ACE ? 申请ACE需要以下条件: 1.发表与oracle相关的技术博客 2.参与Oracle相关的技术大会 3.对Oracle社区做出贡献。 这正好是AI应用的场景吗? 在一个群里有个群友质疑AI落地,以及应用领域? Kelvin:我一直在迷茫,学不好。这么多有趣AI 问题&…

Redis-Cluster模式基操篇

一、场景 1、搞一套6个主节点的Cluster集群 2、模拟数据正常读写 3、模拟单点故障 4、在不停服务的情况下将集群架构改为3主3从 二、环境规划 6台独立的服务器,端口18001~18006 192.169.14.121 192.169.14.122 192.169.14.123 192.169.14.124 192.169.14.125 192…

迁移ISE ChipScope逻辑分析器到Vivado硬件管理器

迁移ISE ChipScope逻辑分析器到Vivado硬件管理器 介绍 本章介绍AMD Vivado™Design Suite硬件管理器,以及这些工具之间的关系 到ISE™设计套件ChipScope™逻辑分析器工具,以及如何迁移IP核 从ISE ChipScope环境到Vivado Design Suite。 Vivado硬件管理器…

Gitlub如何删除分支(删除远程分支+本地分支)

目录 背景 删除方法 总结 背景 想要删除自己在本地创建的并已上传到远程分支中的分支。 删除方法 1)删除远程分支 git push origin --delete brannchname 2)删除本地分支 先切换到其他分支 git checkout otherbranch 删除本地分支 git bran…

使用LLaMA-Factory微调大模型

使用LLaMA-Factory微调大模型 github 地址 https://github.com/hiyouga/LLaMA-Factory 搭建环境 git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git cd LLaMA-Factory在 LLaMA-Factory 路径下 创建虚拟环境 conda create -p ./venv python3.10激活环境 c…

Spring Boot项目中的Controller、Service、Mapper和Entity层的作用与联系

效率工具 推荐一个程序员常用的工具网站:程序员常用工具(http://tools.cxyroad.com),有时间戳、JSON格式化、文本对比、HASH生成、UUID生成等常用工具,效率加倍嘎嘎好用。 云服务器 云服务器限时免费领:轻量…

为参数设置默认值

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 调用函数时,如果没有指定某个参数将抛出异常,为了解决这个问题,我们可以为参数设置默认值,即在定义函…

Oracle Linux上安装ORDS

ORDS就是Oracle REST Data Services。 环境如下: Oracle Linux 8Oracle Database 19cIP地址为A.B.C.D 要安装最新版本的ORDS,当前为24.1.1。 全程参考文档:Installing and Configuring Oracle REST Data Services 安装ORDS 添加reposit…

org.apache.kafka.clients.consumer.CommitFailedException

kafka报org.apache.kafka.clients.consumer.CommitFailedException问题分析 org.apache.kafka.clients.consumer.CommitFailedException: Commit cannot be completed since the group has already rebalanced and assigned the partitions to another member. This means that…

使用反射调用Android隐藏API

前情提要 每一次Android大版本的升级,往往会有大量的APP出现兼容性问题,导致这个情况的主要原因是由于APP的热修复SDKs以及依赖Android internal API(内部API),也就是非SDK API。这些API是指标记hide的类、方法以及字段,它们不属…