Streamlit-app

Try out this code, but first

pip install streamlit
pip install imcrypt

Now here is the code:

import streamlit as st
import imcrypt

st.title('Imcrypt')

st.text('A secure text encryption tool.')
text = st.text_input('Text:')
e_type = st.selectbox('Choose One:', ('Encryption', 'Decryption'))
password = st.text_input('password:')
submit = st.button('Submit')

if submit:
    #text or password should not be empty
    if not (password == '' or text==''):
        
        #if Encryption is choosen
        if e_type == 'Encryption':
            enc_text = imcrypt.encrypt(text, key=password)
            st.text_input('Your Encrypted Text:',f'{enc_text}')

        #if Decryption is choosen
        elif e_type == 'Decryption':
            try:
                enc_text = imcrypt.decrypt(text, key=password)
                st.text_input('Your Decrypted Text:',f'{enc_text}')
            except Exception:
                pass

To run: streamlit run filename.py

so this app works really fine, i just wanted to know how we can directly deploy it to heroku or any other platform.
can we use docker compose to deploy it. i am new to docker so any help would be appreciated.

This is a pretty cool!

You can use glitch.com for small streamlit apps like this - here’s an example.

I tried putting your app in a glitch app here (by replacing app.py with the code that you provided, and putting the imcrypt library inside install in glitch.json), but glitch only supports Python 3.5, and in imcrypt, it uses python f strings in a couple of places (which is only supported in Python 3.6 or later) - so importing it causes it to crash.

If you do want to use glitch, you can try to 1) remove f"" usage in imcrypt (since it appears that you are the author), and 2) update the imcrypt package, and 3) restart the Glitch app so it reinstall the new version and (hopefully!) works.

You could use heroku/aws/gcloud/render as other hosting option as well - where you would have more freedom in choosing the python version. There’s a couple threads in this forum/on Github that talk about different deploying methods with streamlit and best practices.

2 Likes

woooo i checked it on glitch, it looks awesome. sure sure i 'll try to update the imcrypt package.

1 Like

i have updated imcrypt to support python 3.5 string formatting, try it out.

1 Like