Build SQL query for endpoint
This commit is contained in:
parent
2483b2dabf
commit
610493260e
1 changed files with 45 additions and 0 deletions
45
main.py
Normal file
45
main.py
Normal file
|
@ -0,0 +1,45 @@
|
|||
import cgi
|
||||
import datetime
|
||||
|
||||
import pymysql
|
||||
|
||||
def application(env, re):
|
||||
if env["REQUEST_METHOD"] == "POST":
|
||||
args = cgi.parse_qs(env['wsgi.input'].readline().decode(), True)
|
||||
elif env["REQUEST_METHOD"] == "GET":
|
||||
args = cgi.parse_qs(env['QUERY_STRING'], True)
|
||||
else:
|
||||
re("405 Method Not Allowed", [])
|
||||
return
|
||||
|
||||
if env["PATH_INFO"] == "/endpoint":
|
||||
try:
|
||||
device = args["device"][0]
|
||||
except:
|
||||
re("400 Bad Request", [])
|
||||
yield "<h1>400 Bad Request</h1>".encode()
|
||||
yield "device is required.".encode()
|
||||
|
||||
try:
|
||||
latitude = float(args["lat"][0].replace(",", "."))
|
||||
longitude = float(args["lon"][0].replace(",", "."))
|
||||
except Exception as e:
|
||||
re("400 Bad Request", [])
|
||||
yield "<h1>400 Bad Request</h1>".encode()
|
||||
yield "lat and lon are required.".encode()
|
||||
return
|
||||
|
||||
try:
|
||||
altitude = float(args["alt"][0].replace(",", "."))
|
||||
except:
|
||||
altitude = None
|
||||
|
||||
try:
|
||||
timestamp = datetime.datetime.fromtimestamp(float(args["t"][0]) / 1000)
|
||||
except:
|
||||
timestamp = datetime.datetime.now()
|
||||
|
||||
timestr = timestamp.strftime('%Y-%m-%d %H:%M:%S')
|
||||
|
||||
sql = "INSERT INTO tracker(ts, device, lat, lon, alt) VALUES (\"%s\", \"%s\", %s, %s, %s);" % (timestr, device, str(latitude), str(longitude), str(altitude) or "None")
|
||||
|
Loading…
Reference in a new issue