awacke1 commited on
Commit
6158912
Β·
1 Parent(s): 9b7a91f

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +67 -0
app.py ADDED
@@ -0,0 +1,67 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import json
3
+ from azure.cosmos import CosmosClient
4
+
5
+ # Initialize variables
6
+ connection_str = ""
7
+ database_name = ""
8
+ container_name = ""
9
+
10
+ # Load and save query files
11
+ def load_query(filename):
12
+ with open(filename, 'r') as file:
13
+ return file.read()
14
+
15
+ def save_query(filename, query):
16
+ with open(filename, 'w') as file:
17
+ file.write(query)
18
+
19
+ # Connect to Azure Cosmos DB
20
+ def connect_to_cosmosdb(url, key, database, container):
21
+ client = CosmosClient(url, credential=key)
22
+ db = client.get_database_client(database)
23
+ container = db.get_container_client(container)
24
+ return container
25
+
26
+ # Streamlit UI
27
+ st.title("Azure Cosmos DB Explorer πŸ‘½")
28
+
29
+ # Connection Details Expander
30
+ with st.expander("Connect 🌍"):
31
+ connection_str = st.text_input("Connection String (URL):", connection_str)
32
+ database_name = st.text_input("Database Name:", database_name)
33
+ container_name = st.text_input("Container Name:", container_name)
34
+ if st.button("Connect"):
35
+ try:
36
+ container = connect_to_cosmosdb(connection_str, database_name, container_name)
37
+ st.success("Connected successfully! πŸŽ‰")
38
+ except Exception as e:
39
+ st.error(f"Failed to connect: {e}")
40
+
41
+ # Query Editor Expander
42
+ with st.expander("Query Editor πŸ“"):
43
+ query = st.text_area("Enter your SQL query here:")
44
+ file_option = st.selectbox("File Options", ["New", "Open", "Save", "Save As"])
45
+
46
+ if file_option == "New":
47
+ query = ""
48
+ elif file_option == "Open":
49
+ open_file = st.file_uploader("Choose a file:", type=["txt"])
50
+ if open_file is not None:
51
+ query = load_query(open_file)
52
+ elif file_option == "Save":
53
+ save_filename = st.text_input("Enter filename to save:", "my_query.txt")
54
+ if st.button("Save Query"):
55
+ save_query(save_filename, query)
56
+ elif file_option == "Save As":
57
+ saveas_filename = st.text_input("Enter new filename:", "my_new_query.txt")
58
+ if st.button("Save As"):
59
+ save_query(saveas_filename, query)
60
+
61
+ if st.button("Execute Query πŸš€"):
62
+ try:
63
+ results = list(container.query_items(query=query, enable_cross_partition_query=True))
64
+ st.write("Results πŸ“‹:")
65
+ st.json(results)
66
+ except Exception as e:
67
+ st.error(f"Query failed: {e}")