Spaces:
Sleeping
Sleeping
Oviya
commited on
Commit
路
cf2ed78
1
Parent(s):
9c798b1
update signin
Browse files- pytrade.py +4 -1
- signin.py +25 -63
pytrade.py
CHANGED
|
@@ -17,7 +17,10 @@ import time
|
|
| 17 |
import requests
|
| 18 |
from typing import List, Dict
|
| 19 |
from assistant import get_answer
|
| 20 |
-
|
|
|
|
|
|
|
|
|
|
| 21 |
|
| 22 |
app = Flask(__name__)
|
| 23 |
|
|
|
|
| 17 |
import requests
|
| 18 |
from typing import List, Dict
|
| 19 |
from assistant import get_answer
|
| 20 |
+
import pyodbc
|
| 21 |
+
from werkzeug.security import generate_password_hash
|
| 22 |
+
from signin import get_db_connection
|
| 23 |
+
|
| 24 |
|
| 25 |
app = Flask(__name__)
|
| 26 |
|
signin.py
CHANGED
|
@@ -1,58 +1,33 @@
|
|
|
|
|
| 1 |
import os
|
| 2 |
import pyodbc
|
| 3 |
-
from flask import Flask, request, jsonify
|
| 4 |
-
from werkzeug.security import generate_password_hash, check_password_hash
|
| 5 |
-
from flask_cors import CORS
|
| 6 |
|
| 7 |
-
app = Flask(__name__)
|
| 8 |
-
|
| 9 |
-
# -----------------------------------------------
|
| 10 |
-
# CORS: allow multiple origins via env (optional)
|
| 11 |
-
# -----------------------------------------------
|
| 12 |
-
ALLOWED_ORIGINS = os.getenv("ALLOWED_ORIGINS", "*")
|
| 13 |
-
CORS(app, resources={r"/*": {"origins": [o.strip() for o in ALLOWED_ORIGINS.split(",")]}})
|
| 14 |
-
|
| 15 |
-
# ------------------------------------------------------
|
| 16 |
-
# MODE: "local" uses Windows Auth; "server" uses SQL Auth
|
| 17 |
-
# Set MODE=server in Hugging Face Variables & secrets
|
| 18 |
-
# ------------------------------------------------------
|
| 19 |
MODE = os.getenv("MODE", "local").lower()
|
| 20 |
|
| 21 |
-
# ---------------------------
|
| 22 |
# Local (Windows) connection
|
| 23 |
-
# ---------------------------
|
| 24 |
LOCAL_SQL_SERVER = os.getenv("LOCAL_SQL_SERVER", r"localhost\SQLEXPRESS")
|
| 25 |
LOCAL_SQL_DATABASE = os.getenv("LOCAL_SQL_DATABASE", "PyTrade")
|
| 26 |
LOCAL_SQL_DRIVER = os.getenv("LOCAL_SQL_DRIVER", "{ODBC Driver 17 for SQL Server}")
|
| 27 |
|
| 28 |
-
#
|
| 29 |
-
|
| 30 |
-
# ----------------------------------------
|
| 31 |
-
RDS_SQL_SERVER = os.getenv("RDS_SQL_SERVER", "") # e.g. mydb.abcxyz.ap-south-1.rds.amazonaws.com,1433
|
| 32 |
RDS_SQL_DATABASE = os.getenv("RDS_SQL_DATABASE", "PyTrade")
|
| 33 |
RDS_SQL_USER = os.getenv("RDS_SQL_USER", "")
|
| 34 |
RDS_SQL_PASSWORD = os.getenv("RDS_SQL_PASSWORD", "")
|
| 35 |
RDS_SQL_DRIVER = os.getenv("RDS_SQL_DRIVER", "{ODBC Driver 18 for SQL Server}")
|
| 36 |
-
RDS_ENCRYPT = os.getenv("RDS_ENCRYPT", "yes")
|
| 37 |
-
RDS_TRUST_CERT = os.getenv("RDS_TRUST_SERVER_CERT", "yes")
|
| 38 |
|
| 39 |
-
# ======================================================
|
| 40 |
-
# Establishing the database connection using env values
|
| 41 |
-
# (CORE BEHAVIOR UNCHANGED for queries)
|
| 42 |
-
# ======================================================
|
| 43 |
def get_db_connection():
|
| 44 |
if MODE == "local":
|
| 45 |
-
|
| 46 |
-
connection = pyodbc.connect(
|
| 47 |
f"DRIVER={LOCAL_SQL_DRIVER};"
|
| 48 |
f"SERVER={LOCAL_SQL_SERVER};"
|
| 49 |
f"DATABASE={LOCAL_SQL_DATABASE};"
|
| 50 |
f"Trusted_Connection=yes;"
|
| 51 |
)
|
| 52 |
-
return connection
|
| 53 |
else:
|
| 54 |
-
|
| 55 |
-
connection = pyodbc.connect(
|
| 56 |
f"DRIVER={RDS_SQL_DRIVER};"
|
| 57 |
f"SERVER={RDS_SQL_SERVER};"
|
| 58 |
f"DATABASE={RDS_SQL_DATABASE};"
|
|
@@ -60,36 +35,23 @@ def get_db_connection():
|
|
| 60 |
f"Encrypt={RDS_ENCRYPT};TrustServerCertificate={RDS_TRUST_CERT};"
|
| 61 |
f"Connection Timeout=30;"
|
| 62 |
)
|
| 63 |
-
return connection
|
| 64 |
|
| 65 |
-
|
| 66 |
-
# Create the User table only on local
|
| 67 |
-
# (CORE CREATE SQL KEPT THE SAME)
|
| 68 |
-
# ======================================================
|
| 69 |
-
def create_user_table():
|
| 70 |
conn = get_db_connection()
|
| 71 |
-
|
| 72 |
-
|
| 73 |
-
|
| 74 |
-
|
| 75 |
-
|
| 76 |
-
|
| 77 |
-
|
| 78 |
-
|
| 79 |
-
|
| 80 |
-
|
| 81 |
-
|
| 82 |
-
|
| 83 |
-
|
| 84 |
-
|
| 85 |
-
|
| 86 |
-
|
| 87 |
-
|
| 88 |
-
create_user_table()
|
| 89 |
-
|
| 90 |
-
# ===========================
|
| 91 |
-
# DO NOT CHANGE: API ROUTES
|
| 92 |
-
# ===========================
|
| 93 |
-
|
| 94 |
-
|
| 95 |
-
|
|
|
|
| 1 |
+
# db.py
|
| 2 |
import os
|
| 3 |
import pyodbc
|
|
|
|
|
|
|
|
|
|
| 4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 5 |
MODE = os.getenv("MODE", "local").lower()
|
| 6 |
|
|
|
|
| 7 |
# Local (Windows) connection
|
|
|
|
| 8 |
LOCAL_SQL_SERVER = os.getenv("LOCAL_SQL_SERVER", r"localhost\SQLEXPRESS")
|
| 9 |
LOCAL_SQL_DATABASE = os.getenv("LOCAL_SQL_DATABASE", "PyTrade")
|
| 10 |
LOCAL_SQL_DRIVER = os.getenv("LOCAL_SQL_DRIVER", "{ODBC Driver 17 for SQL Server}")
|
| 11 |
|
| 12 |
+
# Remote (RDS/HF) SQL Auth
|
| 13 |
+
RDS_SQL_SERVER = os.getenv("RDS_SQL_SERVER", "")
|
|
|
|
|
|
|
| 14 |
RDS_SQL_DATABASE = os.getenv("RDS_SQL_DATABASE", "PyTrade")
|
| 15 |
RDS_SQL_USER = os.getenv("RDS_SQL_USER", "")
|
| 16 |
RDS_SQL_PASSWORD = os.getenv("RDS_SQL_PASSWORD", "")
|
| 17 |
RDS_SQL_DRIVER = os.getenv("RDS_SQL_DRIVER", "{ODBC Driver 18 for SQL Server}")
|
| 18 |
+
RDS_ENCRYPT = os.getenv("RDS_ENCRYPT", "yes")
|
| 19 |
+
RDS_TRUST_CERT = os.getenv("RDS_TRUST_SERVER_CERT", "yes")
|
| 20 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 21 |
def get_db_connection():
|
| 22 |
if MODE == "local":
|
| 23 |
+
return pyodbc.connect(
|
|
|
|
| 24 |
f"DRIVER={LOCAL_SQL_DRIVER};"
|
| 25 |
f"SERVER={LOCAL_SQL_SERVER};"
|
| 26 |
f"DATABASE={LOCAL_SQL_DATABASE};"
|
| 27 |
f"Trusted_Connection=yes;"
|
| 28 |
)
|
|
|
|
| 29 |
else:
|
| 30 |
+
return pyodbc.connect(
|
|
|
|
| 31 |
f"DRIVER={RDS_SQL_DRIVER};"
|
| 32 |
f"SERVER={RDS_SQL_SERVER};"
|
| 33 |
f"DATABASE={RDS_SQL_DATABASE};"
|
|
|
|
| 35 |
f"Encrypt={RDS_ENCRYPT};TrustServerCertificate={RDS_TRUST_CERT};"
|
| 36 |
f"Connection Timeout=30;"
|
| 37 |
)
|
|
|
|
| 38 |
|
| 39 |
+
def ensure_user_table_exists():
|
|
|
|
|
|
|
|
|
|
|
|
|
| 40 |
conn = get_db_connection()
|
| 41 |
+
try:
|
| 42 |
+
cur = conn.cursor()
|
| 43 |
+
cur.execute('''
|
| 44 |
+
IF NOT EXISTS (SELECT * FROM sysobjects WHERE name='Users' AND xtype='U')
|
| 45 |
+
CREATE TABLE Users (
|
| 46 |
+
id INT IDENTITY(1,1) PRIMARY KEY,
|
| 47 |
+
name NVARCHAR(120) NOT NULL,
|
| 48 |
+
phone NVARCHAR(50) NOT NULL,
|
| 49 |
+
email NVARCHAR(120) UNIQUE NOT NULL,
|
| 50 |
+
password NVARCHAR(255) NOT NULL
|
| 51 |
+
)
|
| 52 |
+
''')
|
| 53 |
+
conn.commit()
|
| 54 |
+
finally:
|
| 55 |
+
try: cur.close()
|
| 56 |
+
except: pass
|
| 57 |
+
conn.close()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|