diff --git a/Burova Nastia, KM-72 b/Burova Nastia, KM-72 new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/Burova Nastia, KM-72 @@ -0,0 +1 @@ + diff --git a/Workshop4/main.py b/Workshop4/main.py new file mode 100644 index 0000000..d73df41 --- /dev/null +++ b/Workshop4/main.py @@ -0,0 +1,125 @@ +import uuid +from sqlalchemy import create_engine, ForeignKey +from sqlalchemy import Column, Integer, String +from sqlalchemy.ext.declarative import declarative_base +from sqlalchemy.orm import relationship, backref, sessionmaker + +oracle_connection_string = 'oracle+cx_oracle://{username}:{password}@{host}:{port}/{sid}' + +engine = create_engine( + oracle_connection_string.format( + + username="OUTLN", + password="1234", + sid="orcl", + host="localhost", + port="1521", + database="orcl", + + ) + , echo=True +) +Session = sessionmaker(bind=engine) + +Base = declarative_base() +session = Session(autocommit=True,autoflush=True) + + +class Insurer(Base): + __tablename__ = 'insurer_log' + + id = Column(String(100), primary_key=True) + insurer_name = Column(String(50)) + insurer_password = Column(Integer) + insurer_email = Column(String(50)) + styles = relationship('Personalinfo', backref = backref('insurer_log'), lazy=True) + + + def __init__(self, insurer_name, insurer_password, insurer_email): + self.insurer_name = insurer_name + self.insurer_password = insurer_password + self.insurer_email = insurer_email + self.id = str(uuid.uuid4()) + + def get_id(self): + return self.id + + + +class Personalinfo(Base): + __tablename__ = 'personal_info' + + id = Column(String(100), primary_key=True) + id_person = Column(String(100), ForeignKey("insurer_log.id")) + person_firststname = Column(String(50)) + person_lastname = Column(String(50)) + person_age = Column(Integer) + person_passport = Column(Integer) + person_itin = Column(Integer) + person_cityzenship = Column(String(50)) + + def __init__(self, person_firststname, person_lastname, person_age, person_passport, person_itin, person_cityzenship): + self.id = str(uuid.uuid4()) + self.id_person = Insurer.get_id() + self.person_firststname = person_firststname + self.person_lastname = person_lastname + self.person_age= person_age + self.person_passport = person_passport + self.person_itin = person_itin + self.person_cityzenship = person_cityzenship + + def check_age_value(id, age, values, person_id): + if age > 70 and age < 1: + print('Unacceptable age') + else: + row = Personalinfo(id=id, person_age=values, id_person=person_id) + session.add(row) + session.commit() + + def check_cityzenship(id, country, values, person_id): + if country != 'Ukraine': + print('only for citizens of Ukraine ') + else: + l = Personalinfo(id=id, person_cityzenship=values, id_person=person_id) + session.add(l) + session.commit() + + + + + +class Policy(Base): + __tablename__ = 'policy_type' + + id = Column(String(100), ForeignKey('insurer_log.id'), primary_key=True) + policy = Column(String(50), default="basic", primary_key=True) + policies = ['basic', 'business', 'sport', 'active'] + + def __init__(self, Insurer): + self.id = Insurer.get_id() + + def add_policy(self, policy): + if policy in self.policies: + self.policy = policy + + def check_policy(self, Insurer, policy): + policies = session.query(Policy).filter_by(id=Insurer.get_id()).all() + return any(i.policy == policy for i in policies) + + + +Base.metadata.create_all(engine) + + +a = Insurer("Liza", 123, "liza@gmail.com") +session.add(a) +session.flush() + +#b = Personalinfo(person_firststname='Elizabeth', person_lastname='Komarova', person_age = 19, person_passport = 234467, person_itin = 3334444, person_cityzenship = 'Ukraine', insurer_log=a) +#session.add(b) +#session.flush() + +#session.add(Policy(b.get_id(), ['basic'])) +#.commit() +#session.flush() +#session.close() diff --git a/workshop3/WorkShop 2 Flask.pdf b/workshop3/WorkShop 2 Flask.pdf new file mode 100644 index 0000000..54a4872 Binary files /dev/null and b/workshop3/WorkShop 2 Flask.pdf differ diff --git a/workshop3/app.py b/workshop3/app.py new file mode 100644 index 0000000..7fe25ce --- /dev/null +++ b/workshop3/app.py @@ -0,0 +1,64 @@ +from flask import Flask, render_template, request, redirect, url_for + +app = Flask(__name__) + + +@app.route('/api/', methods=['GET']) +def apiget(action): + if action == "info": + return render_template("insured_person_info.html", info=a_insured) + elif action == "insurer": + return render_template("insurer.html", insurer=a_insurer) + + elif action == "all": + return render_template("all.html", info=a_insured, insurer=a_insurer) + + else: + return render_template("404.html", info=a_insured, insurer=a_insurer, action_value=action) + +@app.route('/api/', methods=['POST']) +def apipost(action): + if request.form["action"] == 'info_update': + a_insured["person_id"] = request.form["id"] + a_insured["person_firststname"] = request.form["firststname"] + a_insured["person_lastname"] = request.form["lastname"] + a_insured["person_d_birth"] = request.form["d_birth"] + a_insured["person_passport"] = request.form["passport"] + a_insured["person_itin"] = request.form["itin"] + a_insured["user_cityzenship"] = request.form["cityzenship"] + + return redirect(url_for("apiget", action="all")) + + if request.form["action"] == 'insurer_update': + a_insurer["insurer_id"] = request.form["id"] + a_insurer["insurer_name"] = request.form["name"] + a_insurer["insurer_password"] = request.form["password"] + a_insurer["insurer_email"] = request.form["email"] + + + return redirect(url_for("apiget", action="all")) + + +if __name__ == '__main__': + + a_insured = { + "person_id": 1, + "person_firstname": "Elena", + "person_lastname": "Komarova", + "person_d_birth": 16072000, + "person_passport": 433444, + "person_itin": 23344455, + "person_cityzenship": "Ukraine", + + } + + a_insurer= { + "insurer_id": 1, + "insurer_name": "Lena", + "insurer_password": 1234, + "insurer_email": "lena@gmail.com", + + + } + + app.run(debug=True) \ No newline at end of file diff --git a/workshop3/templates/404.html b/workshop3/templates/404.html new file mode 100644 index 0000000..77f560f --- /dev/null +++ b/workshop3/templates/404.html @@ -0,0 +1,10 @@ + + + + + 404 page + + +

Not correct action value: {{action_value}}

+ + \ No newline at end of file diff --git a/workshop3/templates/all.html b/workshop3/templates/all.html new file mode 100644 index 0000000..407e207 --- /dev/null +++ b/workshop3/templates/all.html @@ -0,0 +1,47 @@ + + + + + all + + + + + + + + + + + + + + + + + + + + + + + +
person_idperson_firstnameperson_person_lastnameperson_d_birthperson_passportperson_itinperson_cityzenship
{{info.get("person_id")}}{{info.get("person_firstname")}}{{info.get("person_lastname")}}{{info.get("person_d_birth")}}{{info.get("person_passport")}}{{info.get("person_itin")}}{{info.get("person_cityzenship")}}
+
+ + + + + + + + + + + + + + +
insurer_idinsurer_nameinsurer_passwordinsurer_email
{{insurer.get("insurer_id")}}{{insurer.get("insurer_name")}}{{insurer.get("insurer_password")}}{{insurer.get("insurer_email")}}
+ + \ No newline at end of file diff --git a/workshop3/templates/insured_person_info.html b/workshop3/templates/insured_person_info.html new file mode 100644 index 0000000..a11ef2e --- /dev/null +++ b/workshop3/templates/insured_person_info.html @@ -0,0 +1,17 @@ + + + + + Personal information + + +
+

Firstname:

+

Lastname:

+

Date of birth:

+

Passport id:

+

ITIN:

+

Cityzenship:

+ + + \ No newline at end of file diff --git a/workshop3/templates/insurer.html b/workshop3/templates/insurer.html new file mode 100644 index 0000000..fed8883 --- /dev/null +++ b/workshop3/templates/insurer.html @@ -0,0 +1,16 @@ + + + + + Login form + + + +

Name:

+

Password:

+

Email:

+ +
+ + + \ No newline at end of file