Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file not shown.
63 changes: 63 additions & 0 deletions Hirianska_Viktoriia/workshop2/source/main.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
from flask import Flask, render_template, request, redirect, url_for

app = Flask(__name__)



@app.route('/api/<action>', methods = [ 'GET'])
def apiget(action):


if action == "user":
return render_template("user.html",user=user_dictionary)

elif action == "series":
return render_template("series.html", series=series_dictionary)

elif action == "all":
return render_template("all.html", user=user_dictionary, series=series_dictionary)

else:
return render_template("404.html", action_value=action)


@app.route('/api', methods=['POST'])
def apipost():


if request.form["action"] == "user_update":

user_dictionary["user_name"] = request.form["name"]
user_dictionary["user_surname"] = request.form["surname"]
user_dictionary["user_age"] = request.form["age"]

return redirect(url_for('apiget', action="all"))


if request.form["action"] == "series_update":

series_dictionary["series_title"] = request.form["title"]
series_dictionary["series_genre"] = request.form["genre"]
series_dictionary["series_year"] = request.form["year"]
series_dictionary["series_country"] = request.form["country"]

return redirect(url_for('apiget', action="all"))



if __name__ == '__main__':

user_dictionary = {
"user_name": "Viktoriia",
"user_surname": "Hirianska",
"user_age": 19,
}

series_dictionary = {
"series_title": "Friends",
"series_genre": "Sitcom",
"series_year": 1994,
"series_country": "United States"
}

app.run()
10 changes: 10 additions & 0 deletions Hirianska_Viktoriia/workshop2/source/templates/404.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>404 page</title>
</head>
<body>
<h2>Not correct action value: {{action_value}}</h2>
</body>
</html>
39 changes: 39 additions & 0 deletions Hirianska_Viktoriia/workshop2/source/templates/all.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>all</title>
</head>
<body>

<h1>Series</h1>
<table>
<tr>
<td>Title</td><td>{{series.get('series_title')}}</td>
</tr>
<tr>
<td>Genre</td><td>{{series.get('series_genre')}}</td>
</tr>
<tr>
<td>Year</td><td>{{series.get('series_year')}}</td>
</tr>
<tr>
<td>Country</td><td>{{series.get('series_country')}}</td>
</tr>
</table>

<h1>User</h1>
<table>
<tr>
<td>Name</td><td>{{user.get('user_name')}}</td>
</tr>
<tr>
<td>Surname</td><td>{{user.get('user_surname')}}</td>
</tr>
<tr>
<td>Age</td><td>{{user.get('user_age')}}</td>
</tr>
</table>

</body>
</html>
19 changes: 19 additions & 0 deletions Hirianska_Viktoriia/workshop2/source/templates/series.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>series</title>
</head>
<body>

<form action = "/api" method = "POST" id="form_info">
<p>Title <input type = "text" name = "title" value="{{series.get('series_title')}}"/></p>
<p>Genre <input type = "text" name = "genre" value="{{series.get('series_genre')}}" /></p>
<p>Year <input type = "text" name = "year" value="{{series.get('series_year')}}" /></p>
<p>Country <input type = "text" name = "country" value="{{series.get('series_country')}}" /></p>
</form>

<button type="submit" form="form_series" name="action" value="series_update">Submit</button>

</body>
</html>
18 changes: 18 additions & 0 deletions Hirianska_Viktoriia/workshop2/source/templates/user.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>user</title>
</head>
<body>

<form action = "/api" method = "POST" id="form_user">
<p>Name <input type = "text" name = "name" value="{{user.get('user_name')}}"/></p>
<p>Surname <input type = "text" name = "surname" value="{{user.get('user_surname')}}"/></p>
<p>Age <input type = "text" name = "age" value="{{user.get('user_age')}}" /></p>
</form>

<button type="submit" form="form_user" name="action" value="user_update">Submit</button>

</body>
</html>
85 changes: 85 additions & 0 deletions Hirianska_Viktoriia/workshop4/ORM_relations.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
from sqlalchemy import Column, Integer, String, ForeignKey
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import relationship
from sqlalchemy.orm import sessionmaker
from sql_connection import engine
import json

from sqlalchemy.util import symbol

Base = declarative_base()

class U_USER(Base):

__tablename__ = 'user'

id = Column(Integer, primary_key=True)
user_username = Column(String(50))


class SERIES(Base):

__tablename__ = 'series'

id = Column(Integer, primary_key=True)
series_title = Column(String(128))
series_genre = Column(String(128))
series_year = Column(Integer)
series_country = Column(String(128))
series_amountofseasons = Column(Integer)
series_duration = Column(Integer)
series_description = Column(String(512))


class GRADE(Base):

__tablename__ = 'grade'

id = Column(Integer, primary_key=True)
grade_value = Column(Integer)
user_id = Column(Integer, ForeignKey("user.id"))
series_id = Column(Integer, ForeignKey("series.id"))
reviw = Column(String(200))

styles = relationship('U_USER', backref='grade', lazy=True)
styles_ = relationship('SERIES', backref='grade', lazy=True)



Session = sessionmaker(bind = engine)
session = Session()

series = open("C:/Users/Strawika/Desktop/workshop4/series.json",encoding="utf-8")
data_series = json.load(series)

session.add_all([
SERIES(id = data_series['series'][0]['id'],
series_title = data_series['series'][0]['series_title'],
series_genre = data_series['series'][0]['series_genre'],
series_year = data_series['series'][0]['series_year'],
series_country = data_series['series'][0]['series_country'],
series_amountofseasons = data_series['series'][0]['series_amountofseasons'],
series_duration=data_series['series'][0]['series_duration'],
series_description = data_series['series'][0]['series_description']),

SERIES(id = data_series['series'][1]['id'],
series_title = data_series['series'][1]['series_title'],
series_genre = data_series['series'][1]['series_genre'],
series_year = data_series['series'][1]['series_year'],
series_country = data_series['series'][1]['series_country'],
series_amountofseasons = data_series['series'][1]['series_amountofseasons'],
series_duration = data_series['series'][1]['series_duration'],
series_description = data_series['series'][1]['series_description']),

SERIES(id = data_series['series'][2]['id'],
series_title = data_series['series'][2]['series_title'],
series_genre = data_series['series'][2]['series_genre'],
series_year = data_series['series'][2]['series_year'],
series_country = data_series['series'][2]['series_country'],
series_amountofseasons = data_series['series'][2]['series_amountofseasons'],
series_duration = data_series['series'][2]['series_duration'],
series_description = data_series['series'][2]['series_description']),
]
)

session.commit()
43 changes: 43 additions & 0 deletions Hirianska_Viktoriia/workshop4/check.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
from sql_connection import engine
from ORM_relations import U_USER, SERIES, GRADE, Base
from sqlalchemy.sql import select, update, join
from sqlalchemy import and_, or_, between, asc, desc, update
from sqlalchemy.orm import sessionmaker

Base.metadata.create_all(engine)
Session = sessionmaker(bind=engine)
session = Session()

def check_user_exist(username):

try:
if bool(session.query(U_USER.id).filter_by(id = '1').first()) is False:

row = U_USER(id = '1',user_username = username)
session.add(row)
session.commit()
search_query = (session.query(U_USER).filter_by(id = '1').one()).user_username

print('Hello,', search_query)

else:
if bool(session.query(U_USER.user_username).filter_by(user_username = username).first()) is True:
print('User already exist')

else:
id_value = session.query(U_USER.id).count()
row = U_USER(id=id_value+1, user_username=username)
session.add(row)
session.commit()

except:
print('This user already exsist')


def grade(id,grade,values,id_user,series_id,text):
if grade > 10:
print('Max value is 10')
else:
row = grade(id=id, grade_value=values,user_id = id_user,series_id = series_id,reviw = text)
session.add(row)
session.commit()
33 changes: 33 additions & 0 deletions Hirianska_Viktoriia/workshop4/create_table.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
CREATE TABLE U_USER(
id NUMBER(3) NOT NULL,
user_username VARCHAR2(50) NOT NULL,
CONSTRAINT pk_id_user PRIMARY KEY (id),
CONSTRAINT username_unique UNIQUE (user_username)
);

CREATE TABLE SERIES(
id NUMBER(3) NOT NULL,
series_title VARCHAR2(128) NOT NULL,
series_genre VARCHAR2(128) NOT NULL,
series_year NUMBER(4) NOT NULL,
series_country VARCHAR2(128) NOT NULL,
series_amountofseasons NUMBER(2) NOT NULL,
series_duration NUMBER(3) NOT NULL,
series_description VARCHAR2(512) NOT NULL,
CONSTRAINT pk_id_series PRIMARY KEY (id),
CONSTRAINT title_unique UNIQUE (series_title),
CONSTRAINT check_series_year CHECK(series_year<=2020),
CONSTRAINT check_series_years CHECK(series_year>=1985)
);

CREATE TABLE GRADE(
id NUMBER(2) NOT NULL,
grade_value NUMBER(2),
user_id NUMBER(2) NOT NULL,
series_id NUMBER(2) NOT NULL,
reviw VARCHAR2(200) NOT NULL,
CONSTRAINT pk_id_grade PRIMARY KEY (id),
CONSTRAINT fk_id_user FOREIGN KEY(user_id) REFERENCES U_USER(id),
CONSTRAINT fk_id_series FOREIGN KEY(series_id) REFERENCES SERIES(id),
CONSTRAINT check_grade_value CHECK(grade_value<=10)
);
13 changes: 13 additions & 0 deletions Hirianska_Viktoriia/workshop4/db_connection.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
from sqlalchemy.engine import create_engine

DIALECT = 'oracle'
SQL_DRIVER = 'cx_oracle'
USERNAME = 'MYONLINEEDU'
PASSWORD = 'MYONLINEEDU'

HOST = 'localhost'
PORT = 1521
SERVICE = 'xe'

ENGINE_PATH_WIN_AUTH = DIALECT + '+' + SQL_DRIVER + '://' + USERNAME + ':' + PASSWORD +'@' + HOST + ':' + str(PORT) + '/?service_name=' + SERVICE
engine = create_engine(ENGINE_PATH_WIN_AUTH)
33 changes: 33 additions & 0 deletions Hirianska_Viktoriia/workshop4/series.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
{"series":[
{
"id": "1",
"series_title": "Friends",
"series_genre": "Sitcom",
"series_year":"1994",
"series_country": "United States",
"series_amountofseasons": "10",
"series_duration": "22",
"series_description": "Friends is a 90's Comedy TV show, based in Manhattan, about 6 friends who go through just about every life experience imaginable together; love, marriage, divorce, children, heartbreaks, fights, new jobs and job losses and all sorts of drama."
},
{
"id": "2",
"series_title": "Game of Thrones",
"series_genre": "Fantasy",
"series_year": "2011",
"series_country": "United States",
"series_amountofseasons":"8",
"series_duration": "66",
"series_description": "Game of Thrones is an American fantasy drama television series created by David Benioff and D. B. Weiss for HBO. It is an adaptation of A Song of Ice and Fire, George R. R. Martin's series of fantasy novels, the first of which is A Game of Thrones."
},
{
"id": "3",
"series_title": "Breaking Bad",
"series_genre": "Crime drama",
"series_year": "2008",
"series_country": "United States",
"series_amountofseasons": "5",
"series_duration": "50",
"series_description": "For five seasons consisting of 62 episodes, the story of Walter White, a school teacher who was diagnosed with inoperable lung cancer, is shown. Together with his former apprentice Jesse Pinkman, he begins to manufacture and sell meth to ensure his family�s financial future."
}
]
}
1 change: 1 addition & 0 deletions Hirianska_Viktoriia/workshop5/config.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
TOKEN = '1245867811:AAGH1QJeO_zWGyTDPpKm2MhFKasxrYFult7'
Loading