Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/davidho123/streamlit-crud
Automatically generate UI interfaces and implement CRUD functions
https://github.com/davidho123/streamlit-crud
crud form python streamlit ui
Last synced: 5 days ago
JSON representation
Automatically generate UI interfaces and implement CRUD functions
- Host: GitHub
- URL: https://github.com/davidho123/streamlit-crud
- Owner: davidho123
- Created: 2025-01-09T16:51:10.000Z (18 days ago)
- Default Branch: master
- Last Pushed: 2025-01-18T14:02:02.000Z (9 days ago)
- Last Synced: 2025-01-18T15:14:23.746Z (9 days ago)
- Topics: crud, form, python, streamlit, ui
- Language: Python
- Homepage:
- Size: 196 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README-zh.md
Awesome Lists containing this project
README
# Streamlit-Crud
**自动生成ui界面,并实现CRUD功能**![CRUD主界面](home.png)\
![新增表单](creat.png)\
![修改表单](modify.png)
## 目录
* [概述](README-zh.md##一、概述)
* [功能](README-zh.md##二、功能)
* [使用方法](README-zh.md##三、使用方法)
* [版本说明](README-zh.md##四、版本说明)## 一、概述
本模块是一个类,根据数据库模型,自动生成表单组件,和增删改查按钮。\
表单提交后,实现数据库的增删改查功能。## 二、功能
- 1、根据数据库模型,动态生成表单组件。\
表单组件根据模型的字段类型,动态生成对应的输入组件。
- 2、生成有增删改查按钮,提交后实现数据库的增删改查功能。
- 3、数据库以dataframe表格显示,表格配有过滤搜索、分页、下载功能。
- 4、在根目录下新增log文件夹,以当前日期创建日志文件,记录增删改查信息。
- 5、默认加载样式修改:设置header高度为1,减少body外边距
> 备注:新增的表格导出,以本地时间生成文件名。\
> streamlit表格的下载,使用UTC时间。所以增加这个导出功能。## 三、使用方法
- 1、安装依赖包
```python
pip install streamlit_crud
pip install streamlit sqlmodel streamlit_antd_components pandas
```
ui组件生成,使用streamlit\
数据库模型,使用的sqlmodel\
表格分页功能,使用streamlit_antd_components\
表格过滤,使用pandas
- 2、使用示例**StreamlitCrud类需要两个参数,第一个参数为数据库模型类,第二个参数为数据库连接地址。**\
**运行StreamlitCrud的main方法,就可以生成UI界面和实现CRUD功能。**
> 备注:\
> 1、数据库模型类中,字段名称为"备注"时,会使用多行文字组件。\
> 2、表单组件的初始值,根据模型字段的default值初始化。\
> 3、新增和修改表单时,表单中每一项都是必须填写项,没有填写会提示错误。\
> 4、streamlit要设置 wide 模式,否则按钮会挤到一起
st.set_page_config ( layout="wide" )```python
import streamlit as st
from sqlmodel import SQLModel, Field
from streamlit_crud import StreamlitCrud
from datetime import date, datetime# 定义数据库模型类
class Data(SQLModel, table=True):
__tablename__ = "data"
__table_args__ = {'extend_existing': True}
id: int = Field(default=None, primary_key=True,
sa_column_kwargs={"autoincrement": True})
名称: str = Field(default="")
名称: str = Field(default="")
价格: float = Field(default=0.0)
有货: bool = Field(default=True)
录入日期: date = Field(default=date.today())
录入时间: str = Field(default=datetime.now().strftime('%H:%M:%S'))
备注: str = Field(default="无") # 备注属性会使用多行文字组件database_url = "sqlite:///example.db"
# 要选择wide模式,否则按钮会挤到一起
st.set_page_config(page_title="数据管理系统", layout="wide")
stcrud = StreamlitCrud(Data, database_url)
stcrud.main()
```
## 四、版本说明v 0.1
提供class模块,实现数据库增删改查功能。