Azure-Cosmos-DB / app.py
awacke1's picture
Create app.py
6158912
raw
history blame
2.35 kB
import streamlit as st
import json
from azure.cosmos import CosmosClient
# Initialize variables
connection_str = ""
database_name = ""
container_name = ""
# Load and save query files
def load_query(filename):
with open(filename, 'r') as file:
return file.read()
def save_query(filename, query):
with open(filename, 'w') as file:
file.write(query)
# Connect to Azure Cosmos DB
def connect_to_cosmosdb(url, key, database, container):
client = CosmosClient(url, credential=key)
db = client.get_database_client(database)
container = db.get_container_client(container)
return container
# Streamlit UI
st.title("Azure Cosmos DB Explorer πŸ‘½")
# Connection Details Expander
with st.expander("Connect 🌍"):
connection_str = st.text_input("Connection String (URL):", connection_str)
database_name = st.text_input("Database Name:", database_name)
container_name = st.text_input("Container Name:", container_name)
if st.button("Connect"):
try:
container = connect_to_cosmosdb(connection_str, database_name, container_name)
st.success("Connected successfully! πŸŽ‰")
except Exception as e:
st.error(f"Failed to connect: {e}")
# Query Editor Expander
with st.expander("Query Editor πŸ“"):
query = st.text_area("Enter your SQL query here:")
file_option = st.selectbox("File Options", ["New", "Open", "Save", "Save As"])
if file_option == "New":
query = ""
elif file_option == "Open":
open_file = st.file_uploader("Choose a file:", type=["txt"])
if open_file is not None:
query = load_query(open_file)
elif file_option == "Save":
save_filename = st.text_input("Enter filename to save:", "my_query.txt")
if st.button("Save Query"):
save_query(save_filename, query)
elif file_option == "Save As":
saveas_filename = st.text_input("Enter new filename:", "my_new_query.txt")
if st.button("Save As"):
save_query(saveas_filename, query)
if st.button("Execute Query πŸš€"):
try:
results = list(container.query_items(query=query, enable_cross_partition_query=True))
st.write("Results πŸ“‹:")
st.json(results)
except Exception as e:
st.error(f"Query failed: {e}")