We have multiple Java based web applications in place and need to change to Python coding (it is a must).
From the existing applications, done with JMIX as a code generator,
we have some expectations on the frameworks and tools we are working with
when developing the apps.
All apps are used for DB table data editing and more.
If we need a tool for analyzing/viewing data, we use standard reporting tools.
The tables are small once and also big with up to 300 million rows.
Now the question:
is Streamlit the right tool to replace the Java development we did?
What we are used to get on a click when creating a new app:
- detailed role based data and functional security, aligned to the Active Directory
we just connect the new app with the AD… the rest of the security can then be
defined in the new tool itself, even by the project itself
- generating screens for datagrids and also single entity forms…
we select the tables from the connected DBs and just define what should be generated, including security, sorting, filtering, pagination, cursor handling…
- those screens include all CRUD operations, and there is a dialect in between,
which handles the single DB type needs…
so if we change the underlying DB, we do not have to take care about the used SQLs
- we define the used html template design online where we setup up almost all css settings
All that (and much more) will be done in some hours and at the end of the day we can deploy the app.
It doesn’t matter, if we include 1 or 100 tables to be ready for editing.
Because of the code generation, we can rely on the result, which will be the same in every app we do.
Now we come to Streamlit:
I could not find any addon or module for:
- CRUD operations
- screen generation
- dialog/confirmation popups
- modal windows/popups
I had a look at streamlit-modal, streamlit-aggrid, st.data_editor, st.forms, caching…
and I could at least create some dynamic coding, which will create CRUD operations ans screens based on some table parameters I push into it.
But that is far away from the apps we are used to work with.
And, all of that is manually coded, which means: bugs and a lot of code reviews …
Now I am looking for help to understand what Streamlit should be used for.
Maybe I did not see the right modules, or code generators or example apps…
And it can also be,
that we have the wrong expectations or understanding about what Streamlit is designed for.
It would be great to get more information about these topics.
And also, if this small part of functionality I could not find so far will be
included in the future.
Would also be great to get information about the roadmap for Streamlit.
Actually I have the impression, that Streamlit is nice for a quick prototyping for viewing data and include some nice looking diagrams.
But I do not see yet, that is mainly designed for the purpose I described.
I would also be interested to get in contact to Streamlit representatives to talk about these questions.