网站首页 > 技术文章 正文
用一系列文章介绍如何用python写一个发票管理小工具。
在前面的文章中前端页面和后端框架已经实现,本文将介绍功能实现的代码。
数据库操作
使用sqlalchemy操作sqlite数据库。sqlalchemy对sqlite的增删改查资料很多,使用起来很简单。主要代码分成两个包:model(对应数据库表模型)、dao(数据存取操作)。
以下为创建连接代码:
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from config import appConfig
engine = create_engine(appConfig.database['url'], echo=appConfig.database['echo'])
Base = declarative_base(engine)
session = sessionmaker(bind=engine)()
pydantic数据校验
fastapi可以使用pydantic类型来作为请求和返回,并且支持参数格式校验。因此,我们可以给数据库表Model创建对应的pydantic类来做数据格式校验(Models - pydantic)。为了在swagger文档中为不同的接口展示不同的请求和响应描述,可以针对不同的接口分别创建pydantic类(https://fastapi.tiangolo.com/tutorial/response-model/#add-an-output-model)。
功能示例
导入发票:支持批量选择发票文件导入,会校验发票抬头是否与设置中的发票抬头一致(没有维护发票抬头则不校验),并校验发票是否重复导入。
导出excel:批量导出发票主要内容。
合并PDF发票:对于pdf格式导入的发票,可以合并pdf,方便打印发票。
提供发票修改、删除、查看(批量导入的才可以查看)功能。
设置有效的发票抬头,设置费用类型。
源码
github:https://github.com/xy12358/my-invoice-folder.git
gitee:https://gitee.com/xinying/my-invoice-folder
- 上一篇: Python之短路逻辑和运算符优先级
- 下一篇: 快乐8预测遗传算法的实现逻辑
猜你喜欢
- 2025-01-18 Python机器学习库Sklearn系列教程(14)-逻辑回归
- 2025-01-18 Google裁撤Python团队的背后逻辑
- 2025-01-18 快乐8预测遗传算法的实现逻辑
- 2025-01-18 Python之短路逻辑和运算符优先级
- 2025-01-18 【Python特征工程系列】SHAP特征重要性分析-逻辑回归模型为例
- 2025-01-18 python 简单几句搞定逻辑回归AI算法
- 2025-01-18 一文带您了解逻辑回归(Logistic Regression): Python示例
- 2025-01-18 膜拜!终于有人能把人工智能算法的“逻辑回归”讲得明明白白了
- 2025-01-18 Python类与对象:构建复杂逻辑的魔法
- 2025-01-18 Python 比较难的问题,逻辑结构和代码
- 258℃Python短文,Python中的嵌套条件语句(六)
- 257℃python笔记:for循环嵌套。end=""的作用,图形打印
- 256℃PythonNet:实现Python与.Net代码相互调用!
- 251℃Python操作Sqlserver数据库(多库同时异步执行:增删改查)
- 251℃Python实现字符串小写转大写并写入文件
- 106℃原来2025是完美的平方年,一起探索六种平方的算吧
- 91℃Python 和 JavaScript 终于联姻了!PythonMonkey 要火?
- 83℃Ollama v0.4.5-v0.4.7 更新集合:Ollama Python 库改进、新模型支持
- 最近发表
- 标签列表
-
- python中类 (31)
- python 迭代 (34)
- python 小写 (35)
- python怎么输出 (33)
- python 日志 (35)
- python语音 (31)
- python 工程师 (34)
- python3 安装 (31)
- python音乐 (31)
- 安卓 python (32)
- python 小游戏 (32)
- python 安卓 (31)
- python聚类 (34)
- python向量 (31)
- python大全 (31)
- python次方 (33)
- python桌面 (32)
- python总结 (34)
- python浏览器 (32)
- python 请求 (32)
- python 前端 (32)
- python验证码 (33)
- python 题目 (32)
- python 文件写 (33)
- python中的用法 (32)