Automatically generate UI components based on the data model, and implement CRUD functionalities.
Project description
Streamlit-Crud
Automatically generate UI interfaces and implement CRUD functions
Table of Contents
1. Overview
This module is a class that automatically generates form components and CRUD buttons based on the database model. After the form is submitted, it implements the CRUD functions of the database.
2. Features
- Dynamically generate form components based on the database model.
The form components are dynamically generated according to the field types of the model. - Generate CRUD buttons, and after submission, implement the CRUD functions of the database.
- The database is displayed in a dataframe table, which is equipped with filtering, searching, pagination, and downloading functions.
- Add a log folder in the root directory, create a log file with the current date, and record the information of adding, deleting, modifying, and querying.
Note: The newly added table export generates the file name based on local time.
The download of the streamlit table uses UTC time. Therefore, this export function is added.
3. Usage
- Install the required packages
pip install streamlit_crud
pip install streamlit sqlmodel streamlit_antd_components pandas
UI component generation uses streamlit Database model uses sqlmodel Table pagination function uses streamlit_antd_components Table filtering uses pandas
- Usage example
The StreamlitCrud class requires two parameters, the first is the database model class, and the second is the database connection address.
Run the main method of StreamlitCrud to generate the UI interface and implement CRUD functions.
Note:
1.In the database model class, when the field name is "Remarks", a multi-line text component will be used.
2.The initial value of the form component is initialized according to the default value of the model field.
3.In the creat and modify forms, each item in the form is a required field, and an error will be prompted if it is not filled in.
4.Select the wide mode, otherwise the buttons will be cramped together
st.set_page_config(layout="wide")
import streamlit as st
from sqlmodel import SQLModel, Field
from streamlit_crud import StreamlitCrud
from datetime import date, datetime
# Define the database model class
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})
Name: str = Field(default="")
Price: float = Field(default=0.0)
In_Stock: bool = Field(default=True)
Entry_Date: date = Field(default=date.today())
Entry_Time: str = Field(default=datetime.now().strftime('%H:%M:%S'))
Remarks: str = Field(default="None") # The remarks attribute will use a multi-line text component
database_url = "sqlite:///example.db"
# Select the wide mode, otherwise the buttons will be cramped together.
st.set_page_config(page_title="数据管理系统", layout="wide")
stcrud = StreamlitCrud(Data, database_url)
stcrud.main()
4. Version Information
v 0.1 Provides the class module to implement the CRUD functions of the database.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file streamlit_crud-0.1.61.tar.gz.
File metadata
- Download URL: streamlit_crud-0.1.61.tar.gz
- Upload date:
- Size: 10.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7e6ca32415a1d73c06e3cf2458088d2e9a074616d6dac3198d02004049c910b0
|
|
| MD5 |
7381db75eef164b47e7e9dddf0484e52
|
|
| BLAKE2b-256 |
2c9bdca2d2386a729975edab202397cd239b563c89f603b98e36da0d9a3157e8
|