Projekt_5/proj5.py

116 lines
4.1 KiB
Python

from flask import Flask, request
from flask_sqlalchemy import SQLAlchemy
import json
file = open('settings.json', 'r')
data = json.load(file)
app = Flask(__name__)
app.config ['SQLALCHEMY_DATABASE_URI'] = "mysql://" + data["user"] + ":" + data["password"] + "@mysql.wmi.amu.edu.pl/s490050_Cars"
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)
class Uzytkownicy(db.Model):
__tablename__ = 'użytkownicy'
login = db.Column(db.String(30), primary_key=True)
imię = db.Column(db.String(30), nullable=False)
nazwisko = db.Column(db.String(30), nullable=False)
adres_zamieszkania = db.Column(db.String(100), nullable=False)
adres_email = db.Column(db.String(100), nullable=False)
numer_konta = db.Column(db.String(30))
adres_dostawy = db.Column(db.String(100))
telefon = db.Column(db.String(30))
przedmioty = db.relationship('Przedmiot', backref='użytkownik', lazy=True)
class Przedmiot(db.Model):
__tablename__ = 'przedmioty'
numer = db.Column(db.Integer, primary_key=True)
nazwa = db.Column(db.String(100), nullable=False)
kategoria = db.Column(db.String(100), nullable=False)
cena_wyjściowa = db.Column(db.Integer, nullable=False)
opis = db.Column(db.String(100))
cena_zakupu = db.Column(db.Integer)
użytkownicy_login = db.Column(db.String(30), db.ForeignKey('użytkownicy.login'), nullable=False)
licytacje = db.relationship('Licytacja', backref='przedmiot', lazy=True)
class Licytacja(db.Model):
__tablename__ = 'licytacje'
id = db.Column(db.Integer, primary_key=True)
data_rozpoczęcia = db.Column(db.Date, nullable=False)
data_zakończenia = db.Column(db.Date)
status = db.Column(db.String(50), nullable=False)
przedmioty_numer = db.Column(db.Integer, db.ForeignKey('przedmioty.numer'), nullable=False)
login_zwycięzcy = db.Column(db.String(30), db.ForeignKey('użytkownicy.login'))
oferty = db.relationship('Oferta', backref='licytacja', lazy=True)
class Oferta(db.Model):
__tablename__ = 'oferty'
data = db.Column(db.Date, primary_key=True, nullable=False)
godzina = db.Column(db.Time, nullable=False)
kwota = db.Column(db.Integer, nullable=False)
użytkownicy_login = db.Column(db.String(30), db.ForeignKey('użytkownicy.login'), nullable=False)
licytacje_id = db.Column(db.Integer, db.ForeignKey('licytacje.id'), nullable=False)
class OpcjaDostawy(db.Model):
__tablename__ = 'opcje_dostawy'
id = db.Column(db.Integer, primary_key=True)
nazwa = db.Column(db.String(100), nullable=False)
firma = db.Column(db.String(100), nullable=False)
cena = db.Column(db.Integer, nullable=False)
przypisanie = db.relationship('Przypisanie', backref='opcja_dostawy', lazy=True)
class Przypisanie(db.Model):
__tablename__ = 'przypisanie'
przedmioty_numer = db.Column(db.Integer, db.ForeignKey('przedmioty.numer'), primary_key=True)
opcje_dostawy_id = db.Column(db.Integer, db.ForeignKey('opcje_dostawy.id'), primary_key=True)
@app.route('/', methods=['GET'])
def get_users():
users = Uzytkownicy.query.all()
users_list = []
for user in users:
users_list.append({
'login': user.login,
'imię': user.imię,
'nazwisko': user.nazwisko,
'adres_zamieszkania': user.adres_zamieszkania,
'adres_email': user.adres_email,
'numer_konta': user.numer_konta,
'adres_dostawy': user.adres_dostawy,
'telefon': user.telefon
})
sammy = Uzytkownicy(
login=str(int(users_list[len(users_list)-1]['login']) + 1),
imię="sammy",
nazwisko="burger",
adres_zamieszkania="texas",
adres_email="sammy.burger@gmail.com",
numer_konta="73294390493",
adres_dostawy="texas",
telefon="738291739"
)
db.session.add(sammy)
db.session.commit()
return {'users': users_list}
if __name__ == '__main__':
app.run(debug = True)