podstawowa obsługa bazy danych
This commit is contained in:
parent
c07f99a166
commit
699fe59388
60
app.py
60
app.py
@ -1,7 +1,61 @@
|
|||||||
from flask import Flask, send_file
|
from flask import Flask, send_file, jsonify, request
|
||||||
|
import db
|
||||||
|
import os
|
||||||
|
from werkzeug.utils import secure_filename
|
||||||
|
|
||||||
app = Flask(__name__)
|
app = Flask(__name__)
|
||||||
|
app.config['UPLOAD_FOLDER'] = "configs/squash"
|
||||||
|
app.config['MAX_CONTENT_LENGTH'] = 1024 * 1024 * 512 #512MB
|
||||||
|
|
||||||
|
@app.route("api/addimage", methods=['POST'])
|
||||||
|
def add_image():
|
||||||
|
db.Connect()
|
||||||
|
name = None
|
||||||
|
try:
|
||||||
|
file = request.files['file']
|
||||||
|
if file is None or file == "":
|
||||||
|
return jsonify(message="nofile")
|
||||||
|
except Exception as e:
|
||||||
|
return jsonify(message="nofile")
|
||||||
|
|
||||||
|
try:
|
||||||
|
token = request.form['token']
|
||||||
|
if token is None or token == "":
|
||||||
|
return jsonify(message="notoken")
|
||||||
|
except:
|
||||||
|
if token is None:
|
||||||
|
return jsonify(message="notoken")
|
||||||
|
|
||||||
|
incorrect = True
|
||||||
|
while incorrect:
|
||||||
|
if db.GetVPNImage(token) is not None:
|
||||||
|
if name[-1:].isdigit():
|
||||||
|
name = name[:-1] + str(int(name[-1:])+1)
|
||||||
|
else:
|
||||||
|
name = name+"1"
|
||||||
|
else:
|
||||||
|
incorrect = False
|
||||||
|
|
||||||
|
filename = secure_filename(file.filename)
|
||||||
|
while os.path.exists(os.path.join(app.config['UPLOAD_FOLDER'], filename)):
|
||||||
|
if filename[0].isdigit():
|
||||||
|
filename = str(int(filename[0])+1)+filename[1:]
|
||||||
|
else:
|
||||||
|
filename = "1"+filename
|
||||||
|
file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
|
||||||
|
|
||||||
|
db.AddVPNImage(filename, token)
|
||||||
|
|
||||||
|
return jsonify(message="ok")
|
||||||
|
|
||||||
|
|
||||||
@app.route("/api/getvpn")
|
@app.route("/api/getvpn")
|
||||||
def hello_world():
|
def get_image():
|
||||||
return send_file("configs/squash/praktyki.squashfs")
|
try:
|
||||||
|
filename = db.GetVPNImage(request.args['token'])
|
||||||
|
except:
|
||||||
|
filename = "default.squashfs"
|
||||||
|
if filename is None or filename == "":
|
||||||
|
filename = "default.squashfs"
|
||||||
|
|
||||||
|
return send_file(os.path.join(app.config['UPLOAD_FOLDER'], filename))
|
5
config.py
Normal file
5
config.py
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
database="praktyki"
|
||||||
|
host="localhost"
|
||||||
|
user="praktyki"
|
||||||
|
password="2a7driUITXFy73tO"
|
||||||
|
port="5432"
|
50
db.py
Normal file
50
db.py
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
import psycopg2
|
||||||
|
import config
|
||||||
|
|
||||||
|
def Connect():
|
||||||
|
global cur, conn
|
||||||
|
try:
|
||||||
|
conn = psycopg2.connect(database=config.database,
|
||||||
|
host=config.host,
|
||||||
|
user=config.user,
|
||||||
|
password=config.password,
|
||||||
|
port=config.port)
|
||||||
|
except Exception as ex:
|
||||||
|
print(f"Error connecting to PostgreSQL: {e}")
|
||||||
|
|
||||||
|
cur = conn.cursor()
|
||||||
|
|
||||||
|
with conn.cursor() as cur:
|
||||||
|
cur.execute("""
|
||||||
|
CREATE TABLE IF NOT EXISTS vpn (
|
||||||
|
id SERIAL PRIMARY KEY,
|
||||||
|
image_name VARCHAR(255) NOT NULL,
|
||||||
|
token VARCHAR(255) NOT NULL,
|
||||||
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||||
|
)
|
||||||
|
""")
|
||||||
|
conn.commit()
|
||||||
|
|
||||||
|
def GetCur():
|
||||||
|
return conn.cursor()
|
||||||
|
|
||||||
|
def GetConn():
|
||||||
|
return conn
|
||||||
|
|
||||||
|
def AddVPNImage(name, token):
|
||||||
|
Connect()
|
||||||
|
with GetCur() as cur:
|
||||||
|
cur.execute("""
|
||||||
|
INSERT INTO vpn (image_name, token)
|
||||||
|
VALUES (%s, %s)
|
||||||
|
""",(name, token,))
|
||||||
|
conn.commit()
|
||||||
|
|
||||||
|
def GetVPNImage(token):
|
||||||
|
Connect()
|
||||||
|
with GetCur() as cur:
|
||||||
|
return cur.execute("""
|
||||||
|
SELECT image_name FROM vpn WHERE token = %s
|
||||||
|
""",(token,)).fetchone()
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user