i=i+1 and st.button() and st.write(i)
Hi @Alexey_Prikhodko, welcome to the Streamlit community!!
Our topic guide on how to Add State to your app walks you through examples of how to increment a variable count
using the Session State API and callbacks:
https://docs.streamlit.io/en/stable/add_state_app.html
Example 2: Session State and Callbacks
import streamlit as st
st.title('Counter Example using Callbacks')
if 'count' not in st.session_state:
st.session_state.count = 0
def increment_counter():
st.session_state.count += 1
st.button('Increment', on_click=increment_counter)
st.write('Count = ', st.session_state.count)
Happy Streamlit’ing!
Snehan
Thanks for the quick reply. But I have a problem with increment button if two buttons are needed below code. There is a solution?:
if 'count' not in st.session_state:
st.session_state.count = 0
def decrement_counter():
st.session_state.count -= 1
st.button('decrement', on_click=decrement_counter())
def increment_counter():
st.session_state.count += 1
st.button('Increment', on_click=increment_counter)
st.write('Count = ', st.session_state.count)
Could you be a little more specific about exactly what issue you face?
If you meant you wanted two buttons --one to increment and another to decrement-- it is covered in Example 3: Use args
and kwargs
in Callbacks:
import streamlit as st
st.title('Counter Example using Callbacks with kwargs')
if 'count' not in st.session_state:
st.session_state.count = 0
def increment_counter(increment_value=0):
st.session_state.count += increment_value
def decrement_counter(decrement_value=0):
st.session_state.count -= decrement_value
st.button('Increment', on_click=increment_counter,
kwargs=dict(increment_value=5))
st.button('Decrement', on_click=decrement_counter,
kwargs=dict(decrement_value=1))
st.write('Count = ', st.session_state.count)
Best,
Snehan
Biggggggggggg thank the solution:))
Exactly what I was looking for! Thanks @snehankekre!
Charly
I don’t believe this code works anymore. When I copy it into an empty python file and run it I get several errors.
The code looks fine to me. Make sure you are using the correct terminal command to launch the app. In your terminal, from the location of your testing.py
file:
streamlit run testing.py
You can’t feed the file directly to your Python interpreter; you have to feed it to Streamlit.