-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapp.py
More file actions
60 lines (53 loc) · 1.62 KB
/
app.py
File metadata and controls
60 lines (53 loc) · 1.62 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
from flask import Flask, request, jsonify
import pymysql
import boto3
import os
app = Flask(__name__)
# Connect to Linode's managed database
conn = pymysql.connect(
host='lin-16251-9474-mysql-primary.servers.linodedb.net',
user='linroot',
password='eJ0q5sopHd+XTAG7',
db='products',
port=3306
)
# Connect to Linode's object storage
s3 = boto3.client('s3',
aws_access_key_id='access_key',
aws_secret_access_key='secret_key'
)
@app.route('/')
def index():
return 'Welcome to the Linode Flask App!'
@app.route('/store_data', methods=['POST'])
def store_data():
data = request.get_json()
cursor = conn.cursor()
# Store data in Linode's managed database
sql = "INSERT INTO data (name, email, message) VALUES (%s, %s, %s)"
cursor.execute(sql, (data['name'], data['email'], data['message']))
conn.commit()
# Store relevant photos and documents in Linode's object storage
if 'photo' in data:
s3.upload_file(data['photo'], 'bucket_name', 'photo.jpg')
if 'document' in data:
s3.upload_file(data['document'], 'bucket_name', 'document.pdf')
return jsonify({'message': 'Data stored successfully!'})
@app.route('/get_data', methods=['GET'])
def get_data():
cursor = conn.cursor()
# Retrieve data from Linode's managed database
sql = "SELECT * FROM data"
cursor.execute(sql)
result = cursor.fetchall()
data = []
for row in result:
data.append({
'id': row[0],
'name': row[1],
'email': row[2],
'message': row[3]
})
return jsonify({'data': data})
if __name__ == '__main__':
app.run()