“NoModule named streamlit_option_menu”, but I have already installed it. How do I solve this?
from streamlit_option_menu import option_menu
import streamlit as st
import sqlite3 as lite
import pandas as pd
from st_aggrid import AgGrid
from st_aggrid.grid_options_builder import GridOptionsBuilder
def main():
conn = lite.connect(‘banco.db’)
cur = conn.cursor()
cur.execute(‘’’ CREATE TABLE IF NOT EXISTS Cadastro(NOME text, APELIDO TEXT, RESIDENCIA TEXT, IDADE INT, CONTACTO TEXT, ESTATUS TEXT, ESTADO CÍVIL TEXT, POSIÇAO TEXT)‘’')
st.set_page_config(page_title=“IGREJA WESLEYANA-NAMPULA”)
with st.sidebar:
Selecao=option_menu(
menu_title=“MENU”,
options=[“INÍCIO”,“CADASTRO”,“MEMBROS”,“CONTACTO”],
icons=[“house”,“book”,“people”,“pen”],
styles={
“icon”:{
“color”:“orange”
}
}
)
if Selecao=="INÍCIO":
st.header(body=":orange[BEM-VINDO - WELL-COME]")
st.subheader(body=":red[SALMOS 87:6]")
st.title(body=":green[Assim o :red[SENHOR] escreverá no registro dos povos: ' Este nasceu ali ']")
fotos = "Igreja.jfif"
st.image(fotos)
if Selecao == "CADASTRO":
def Formulario():
global Nome, Apelido, Residencia, Idade, Contacto, Estado, Estado2, Posicao
with st.form(key="Formulario de Cadastro", clear_on_submit=True):
col1, col2, =st.columns(2)
with col1:
#Id = st.number_input("Crie o seu Id")
Nome =st.text_input(':green[Informe o seu Nome:]')
Apelido =st.text_input(":green[Informe o seu Apelido:] ")
Residencia = st.text_input(':green[Informe a sua Residencia:] ')
Idade = st.text_input(':green[Informe a sua Idade:] ')
with col2:
Contacto = st.text_input(":green[Informe o seu contacto:] ")
Estado = st.selectbox(":green[Selecione uma opçao]",("Selecione","Batizada","Batizado","Nao Batizada","Nao Batizado"))
Estado2 = st.selectbox(":green[Informe o seu Estado Cívil]",("Selecione","Solteira","Solteiro","Casada","Casado",))
Posicao = st.text_input(":green[Informe a sua Posiçao]")
Botao =st.form_submit_button(label="Submeter")
if Botao ==True:
Inserir(Nome, Apelido, Residencia, Idade, Contacto, Estado, Estado2, Posicao)
st.success(body="Os seus dados foram inseridos com Sucesso",icon="✅")
def Inserir(a,b,c,d,e,f,g,h):
conn = lite.connect('banco.db')
cur = conn.cursor()
cur.execute(" INSERT INTO Cadastro VALUES('"+Nome+"','"+Apelido+"','"+Residencia+"','"+Idade+"','"+Contacto+"','"+Estado+"','"+Estado2+"','"+Posicao+"')")
conn.commit()
Dados=cur.execute("SELECT * FROM Cadastro")
#Resultado = Dados.fetchall()
#conn.close()
Formulario()
if Selecao == "MEMBROS":
try:
dt = pd.read_sql_query("SELECT * FROM Cadastro",conn)
df2 = pd.DataFrame(dt, columns=['NOME', 'APELIDO', 'RESIDENCIA', 'IDADE', 'CONTACTO', 'ESTATUS', 'ESTADO', 'POSIÇAO'])
AgGrid(df2)
st.info(f"Já foram Cadastrados até já, {len(df2)} Membros")
except:
pass
if Selecao=="CONTACTO":
st.header(body="Envie-nos uma Mensagem")
foto = "Imagem.PNG"
st.image(foto)
Emial = '''
<form action="https://formsubmit.co/apoiocodeminde@gmail.com" method="POST">
<input type="hidden" name="_captcha" value="false">
<input type="nome" placeholder="Informe o seu Nome" required>
<input type="email" placeholder="Seu Email!" required>
<textarea name="message" placeholder="Envie sua Mensagem Aqui!" rows="10" required></textarea>
<button type="submit">ENVIAR</button>
</form>
'''
st.markdown(Emial, unsafe_allow_html=True)
def Local_Css(file_name):
with open(file_name) as f:
st.markdown(f"<style>{f.read()}</style>", unsafe_allow_html=True)
Local_Css("style.css.txt")
if name == ‘main’:
# Define o host e a porta
host = ‘0.0.0.0’
port = 8501
# Inicia o aplicativo
st.set_option('server.headless', True)
st.set_option('server.enableCORS', True)
st.set_page_config(layout='wide')
# Executa o aplicativo
main_app = main()
main_app.run(host=host, port=port)