From aa04b09e7fb4940a7869657366c1002f8becf54c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=94=D0=BE=D0=BB=D0=B3=D0=B8=D0=B9=20=D0=90=D1=80=D1=82?= =?UTF-8?q?=D1=91=D0=BC?= <artem@da2001.ru> Date: Wed, 15 Jun 2022 10:55:48 +0300 Subject: [PATCH] up --- .idea/.gitignore | 3 + .idea/dictionaries/da2001.xml | 3 + .idea/epam_diplom.iml | 10 ++ .../inspectionProfiles/profiles_settings.xml | 6 + .idea/misc.xml | 7 + .idea/modules.xml | 8 ++ .idea/vcs.xml | 6 + __pycache__/flask_app.cpython-38.pyc | Bin 0 -> 360 bytes check_date.py | 27 ++++ flask_app.py | 27 ++++ flask_sample/app.py | 80 +++++++++++ flask_sample/static/img/covid19.png | Bin 0 -> 40030 bytes flask_sample/static/img/logo.png | Bin 0 -> 21765 bytes flask_sample/static/style.css | 3 + flask_sample/templates/index.html | 30 ++++ flask_sql.py | 25 ++++ get_data_sample.py | 135 ++++++++++++++++++ probe.py | 0 temp_out.json | 64 +++++++++ 19 files changed, 434 insertions(+) create mode 100644 .idea/.gitignore create mode 100644 .idea/dictionaries/da2001.xml create mode 100644 .idea/epam_diplom.iml create mode 100644 .idea/inspectionProfiles/profiles_settings.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/vcs.xml create mode 100644 __pycache__/flask_app.cpython-38.pyc create mode 100644 check_date.py create mode 100644 flask_app.py create mode 100644 flask_sample/app.py create mode 100644 flask_sample/static/img/covid19.png create mode 100644 flask_sample/static/img/logo.png create mode 100644 flask_sample/static/style.css create mode 100644 flask_sample/templates/index.html create mode 100644 flask_sql.py create mode 100644 get_data_sample.py create mode 100644 probe.py create mode 100644 temp_out.json diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/.idea/dictionaries/da2001.xml b/.idea/dictionaries/da2001.xml new file mode 100644 index 0000000..5198b51 --- /dev/null +++ b/.idea/dictionaries/da2001.xml @@ -0,0 +1,3 @@ +<component name="ProjectDictionaryState"> + <dictionary name="da2001" /> +</component> \ No newline at end of file diff --git a/.idea/epam_diplom.iml b/.idea/epam_diplom.iml new file mode 100644 index 0000000..0ba5c28 --- /dev/null +++ b/.idea/epam_diplom.iml @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="UTF-8"?> +<module type="PYTHON_MODULE" version="4"> + <component name="NewModuleRootManager"> + <content url="file://$MODULE_DIR$"> + <excludeFolder url="file://$MODULE_DIR$/venv" /> + </content> + <orderEntry type="jdk" jdkName="Python 3.9 (epam_diplom)" jdkType="Python SDK" /> + <orderEntry type="sourceFolder" forTests="false" /> + </component> +</module> \ No newline at end of file diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml new file mode 100644 index 0000000..105ce2d --- /dev/null +++ b/.idea/inspectionProfiles/profiles_settings.xml @@ -0,0 +1,6 @@ +<component name="InspectionProjectProfileManager"> + <settings> + <option name="USE_PROJECT_PROFILE" value="false" /> + <version value="1.0" /> + </settings> +</component> \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..52b9fb1 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="ProjectRootManager" version="2" project-jdk-name="Python 3.9 (epam_diplom)" project-jdk-type="Python SDK" /> + <component name="PyCharmProfessionalAdvertiser"> + <option name="shown" value="true" /> + </component> +</project> \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..d3c9a2f --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="ProjectModuleManager"> + <modules> + <module fileurl="file://$PROJECT_DIR$/.idea/epam_diplom.iml" filepath="$PROJECT_DIR$/.idea/epam_diplom.iml" /> + </modules> + </component> +</project> \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="VcsDirectoryMappings"> + <mapping directory="$PROJECT_DIR$" vcs="Git" /> + </component> +</project> \ No newline at end of file diff --git a/__pycache__/flask_app.cpython-38.pyc b/__pycache__/flask_app.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..61db144c453b64205b5a1f07b4a73b6625c4ef83 GIT binary patch literal 360 zcmYjMu}TCn5Y1#ax68qypJ2NPo6}lE5G=0|n{7fgBX^kGhGY-a_WTgV%D=HrYvnIo zb(6L52IfuPFmK-EZZ?}T3iv#^|EBtr$zc>kt|((mV3+~R9CYA#$AKYWv4yV0@?9AI z0j4nJ8>7y|h+Ec7eo4a`p2UsS@hKezTpJ8(K<BL<a0l`sPaFm(a!na)f`R<DK%4mD zb-E($bGsazZ6M^czE}`cM%bOoW$#cLeLkO`$$-9(61{fHti0`=e9RXp?S1QCk{Ea8 zkH_rCc&G>$P1T8UF68d$k!q#Z+M!aZAaN3*-wZg8|C|54CZtLAh3n16;w2D^xpmCz Gs)jwV$V{XF literal 0 HcmV?d00001 diff --git a/check_date.py b/check_date.py new file mode 100644 index 0000000..1963912 --- /dev/null +++ b/check_date.py @@ -0,0 +1,27 @@ +from datetime import datetime, date + + +def check_date(input_date): + try: + datetime.strptime(input_date, '%Y-%m-%d').date() + return True + # valid_date = datetime.strptime(input_date, '%Y-%m-%d').date() + # if valid_date < date.today(): + # return True + # else: + # print('Введенная дата еще не наступила') + # return False + except ValueError: + return False + + +while True: + input_day = input('Введите дату в формате ГГГГ-ММ-ДД): ') + if check_date(input_day): + print('Введенная дата корректна') + break + else: + print('Введенная дата некорректна') + continue + + diff --git a/flask_app.py b/flask_app.py new file mode 100644 index 0000000..5e5b1de --- /dev/null +++ b/flask_app.py @@ -0,0 +1,27 @@ +from flask import Flask, render_template + +app = Flask(__name__) + + +@app.route('/') +@app.route('/index') +def index(): + return '<h1>Hello, World!</h1>' + + +@app.route('/sum/<int:a>/<int:b>') +def summa(a, b): + return str(a + b) + + +""" +Типы динамических переменных +string принимает любые строки (значение по умолчанию) +int принимает целые числа +float принимает числа с плавающей точкой +path принимает полный путь включая слэши и завершающий слэш +uuid принимает строки uuid (символьные id) +""" + +if __name__ == "__main__": + app.run(host='127.0.0.1', port=8181) diff --git a/flask_sample/app.py b/flask_sample/app.py new file mode 100644 index 0000000..5b06491 --- /dev/null +++ b/flask_sample/app.py @@ -0,0 +1,80 @@ +import json +from flask import Flask, render_template, request +from datetime import datetime, date + +import requests + +url = 'https://covidtrackerapi.bsg.ox.ac.uk/api/v2/stringency/actions/' +''' +01. Belarus - BLR +02. China - CHN +03. France - FRA +04. Germany - DEU +05. India - IND +06. Israel - ISR +07. Russia - RUS +08. Serbia - SRB +09. Spain - ESP +10. Turkey - TUR +''' +countries = ['blr', 'chn', 'fra', 'deu', 'ind', 'isr', 'rus', 'srb', 'esp', 'tur'] +tmp_output = {} + + +def check_date(input_date): + """ Check date format from input string. + + Args: input_date - (str). + Return: Bool - True if date correct. """ + try: + # valid_date = datetime.strptime(input_date, '%Y-%m-%d').date() + datetime.strptime(input_date, '%Y-%m-%d').date() + return True + except ValueError: + return False + + +def request_one_country(api, cntr, day): + """ Request from api-url. + + Args: api - (str) - api url, + cntr - (str) country alpha-3 code, + day - (int) YYYY-MM-DD. + Return: Response - (dict). """ + r_out = requests.get(f'{api}{cntr}/{day}') + return r_out.json() + +###################################################### + + +app = Flask(__name__) + + +@app.route('/', methods=['post', 'get']) +def index(): + if request.method == 'POST': + input_date = request.form.get('input_date') # запрос к данным формы + if check_date(input_date): + correct_date = datetime.strptime(input_date, '%Y-%m-%d').date() + if correct_date >= date.today(): + return render_template('index.html', message='Input date has not arrived yet') + + for country in countries: + out = request_one_country(url, country, correct_date) + tmp_output.setdefault(country, out.get('stringencyData')) + + output = {input_date: tmp_output} + with open('../temp_out.json', 'w') as f: + json.dump(output, f, sort_keys=True, indent=2) + + return render_template('index.html') + elif not input_date: + return render_template('index.html', message='Please input date') + else: + return render_template('index.html', message='Incorrect input') + else: + return render_template('index.html') + + +if __name__ == "__main__": + app.run(host='127.0.0.1', port=8181, debug=True) diff --git a/flask_sample/static/img/covid19.png b/flask_sample/static/img/covid19.png new file mode 100644 index 0000000000000000000000000000000000000000..98b23e3abec276ffb152462932f86e40695adf4e GIT binary patch literal 40030 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 KMNUMnLSTZK2;wUM literal 0 HcmV?d00001 diff --git a/flask_sample/static/img/logo.png b/flask_sample/static/img/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..a4592d84684b515d145b8ed706d38fc41648abcf GIT binary patch literal 21765 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 literal 0 HcmV?d00001 diff --git a/flask_sample/static/style.css b/flask_sample/static/style.css new file mode 100644 index 0000000..ca2c520 --- /dev/null +++ b/flask_sample/static/style.css @@ -0,0 +1,3 @@ +body { + color: blue; +} \ No newline at end of file diff --git a/flask_sample/templates/index.html b/flask_sample/templates/index.html new file mode 100644 index 0000000..8215377 --- /dev/null +++ b/flask_sample/templates/index.html @@ -0,0 +1,30 @@ +<!DOCTYPE html> +<html lang="ru"> +<head> + <meta charset="UTF-8"> + <title>COVID-19 Some statistics</title> + <link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}"> +</head> +<body> + <p>Some statistics</p> + <img src="{{ url_for('static', filename='img/covid19.png') }}" + alt="Img" width="300"> +<!-- alt="Img" width="300" height="300">--> + + <form action="" method="post"> + <p> + <label for="input_date">Input date (YYYY-MM-DD)</label> + <input type="text" name="input_date"> + <input type="submit" value="Show"> + </p> +<!-- <p>--> +<!-- <input type="submit" value="Show">--> +<!-- </p>--> + </form> + {{ message }} + +</body> +</html> +<!--<script>--> +<!-- alert('Эй!')--> +<!--</script>--> diff --git a/flask_sql.py b/flask_sql.py new file mode 100644 index 0000000..a8e87a9 --- /dev/null +++ b/flask_sql.py @@ -0,0 +1,25 @@ +from datetime import datetime + +from flask import Flask +from flask_sqlalchemy import SQLAlchemy + +app = Flask(__name__) +app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///test.db' +''' +postgresql://user:password@localhost/mydatabase +mysql://user:password@localhost/mydatabase +oracle://user:password@127.0.0.1:1521/mydatabase +''' + +db = SQLAlchemy(app) + + +class Users(db.Model): + id = db.Column(db.Integer, primary_key=True) + email = db.Column(db.String(50), unique=True) + psw = db.Column(db.String(500), nullable=True) + date = db.Column(db.DateTime, default=datetime.utcnow) + + +if __name__ == "__main__": + app.run(debug=True) diff --git a/get_data_sample.py b/get_data_sample.py new file mode 100644 index 0000000..7171964 --- /dev/null +++ b/get_data_sample.py @@ -0,0 +1,135 @@ +import sys, getopt +import argparse +import datetime +import re +import json +import os +import requests +import MySQLdb #need sudo apt-get install python-mysqldb (for debian based distros), yum install MySQL-python (for rpm-based), or dnf install python-mysql (for modern fedora distro) in command line to download + +start_date = '2021-01-1' +end_date = '2021-06-01' +url = 'https://covidtrackerapi.bsg.ox.ac.uk/api/v2/stringency/date-range/' + +try: + os.environ["DB_HOST"] +except KeyError: + print ("Please set the environment variable DB_HOST") + sys.exit(1) + +try: + os.environ["DB_USER"] +except KeyError: + print ("Please set the environment variable DB_USER") + sys.exit(1) + +try: + os.environ["DB_PASS"] +except KeyError: + print ("Please set the environment variable DB_PASS") + sys.exit(1) + +try: + os.environ["DB_NAME"] +except KeyError: + print ("Please set the environment variable DB_NAME") + sys.exit(1) + +db_host = os.environ.get('DB_HOST') + +print("DBHOST IS ", os.environ.get('DB_HOST')) + +db_user = os.environ.get('DB_USER') +db_pass = os.environ.get('DB_PASS') +db_name = os.environ.get('DB_NAME') + +query_insert = """INSERT INTO covid (date_value,country_code,confirmed,deaths,stringency_actual,stringency) VALUES (%s,%s,%s,%s,%s,%s)""" +query_select = """SELECT date_value,country_code,confirmed,deaths,stringency_actual,stringency FROM covid""" +query_create = """CREATE TABLE IF NOT EXISTS covid ( + id INT AUTO_INCREMENT PRIMARY KEY, + date_value VARCHAR(255) NOT NULL, + country_code VARCHAR(255) NOT NULL, + confirmed INT, + deaths INT, + stringency_actual FLOAT, + stringency FLOAT)""" +qurey_unique_index = """CREATE UNIQUE INDEX ix_uq ON covid (date_value, country_code)""" +query_update = """INSERT IGNORE INTO covid (date_value,country_code,confirmed,deaths,stringency_actual,stringency) VALUES (%s,%s,%s,%s,%s,%s)""" + +# Initialising database connection +try: + db = MySQLdb.connect(host = db_host, # host, usually localhost + user = db_user, # username + passwd = db_pass, # password + db = db_name) # of the data base +except ValueError: + raise ValueError("No datatbase connect") + +def create_table(url, start, end): + print ("Creating table \"covid\"") + cur = db.cursor() + try: + cur.execute(query_create) + except ValueError: + raise ValueError("Something go wrong while creating table") + print("Getting data from ", url + str(start) + '/' + str(end)) + r = requests.get(url + str(start) + '/' + str(end)) + data = r.json() + print("Opening database") + cur = db.cursor() + print("Parsing data and inserting it to database") + for date in data["data"]: + for country in data["data"][date]: + try: + cur.execute(query_insert, (data["data"][date][country]["date_value"], data["data"][date][country]["country_code"], data["data"][date][country]["confirmed"], data["data"][date][country]["deaths"], data["data"][date][country]["stringency_actual"],data["data"][date][country]['stringency'])) + except ValueError: + raise ValueError("Something go wrong while inserting new data") + print("Creating unique indexes for date_value and country_code fields") + try: + cur.execute(qurey_unique_index) + except ValueError: + raise ValueError("Something go wrong while creating indexes") + print("Commititng data") + db.commit() + print("Closing database") + cur.close() + return("DB created and data has been inserted from: " + start_date + " to: " + end_date ) + +def update_data(url, start, end): +# Getting data from API and inserting it to database + print("Getting data from ", url + str(start) + '/' + str(end)) + r = requests.get(url + str(start) + '/' + str(end)) + data = r.json() + print("Opening database") + cur = db.cursor() + print("Parsing data and inserting it to database") + for date in data["data"]: + for country in data["data"][date]: + try: + cur.execute(query_update, (data["data"][date][country]["date_value"], data["data"][date][country]["country_code"], data["data"][date][country]["confirmed"], data["data"][date][country]["deaths"], data["data"][date][country]["stringency_actual"],data["data"][date][country]['stringency'])) + except ValueError: + raise ValueError("Something go wrong while inserting new data") + print("Commititng data") + db.commit() + print("Closing database") + cur.close() + return("DB has been update to: " + end_date ) + +def select_data(): +# Selecting data drom database + print("Opening database") + cur = db.cursor() + print("Selecting data from database") + try: + cur.execute(query_select) + except ValueError: + print("Something going wrong. Select didn't working. I'll check if table exist and if no I'll fix it") + create_table(url, start_date, end_date) + raise ValueError("Cannot get data from DB") + row_headers=[h[0] for h in cur.description] + results = cur.fetchall() + j_data=[] + for result in results: + j_data.append(dict(zip(row_headers, result))) + cur.close() + return j_data \ No newline at end of file diff --git a/probe.py b/probe.py new file mode 100644 index 0000000..e69de29 diff --git a/temp_out.json b/temp_out.json new file mode 100644 index 0000000..78cc3d1 --- /dev/null +++ b/temp_out.json @@ -0,0 +1,64 @@ +{ + "2022-03-08": { + "blr": { + "confirmed": 932949, + "country_code": "BLR", + "date_value": "2022-03-08", + "deaths": 6594, + "stringency": 23.15, + "stringency_actual": 23.15 + }, + "chn": { + "msg": "Data unavailable" + }, + "deu": { + "confirmed": 16326087, + "country_code": "DEU", + "date_value": "2022-03-08", + "deaths": 124769, + "stringency": 80.56, + "stringency_actual": 80.56 + }, + "esp": { + "confirmed": 11159574, + "country_code": "ESP", + "date_value": "2022-03-08", + "deaths": 100859, + "stringency": 33.8, + "stringency_actual": 33.8 + }, + "fra": { + "confirmed": 22530160, + "country_code": "FRA", + "date_value": "2022-03-08", + "deaths": 136539, + "stringency": 69.44, + "stringency_actual": 69.44 + }, + "ind": { + "confirmed": 42975883, + "country_code": "IND", + "date_value": "2022-03-08", + "deaths": 515355, + "stringency": 71.76, + "stringency_actual": 71.76 + }, + "isr": { + "confirmed": 3688096, + "country_code": "ISR", + "date_value": "2022-03-08", + "deaths": 10322, + "stringency": 21.3, + "stringency_actual": 21.3 + }, + "rus": { + "msg": "Data unavailable" + }, + "srb": { + "msg": "Data unavailable" + }, + "tur": { + "msg": "Data unavailable" + } + } +} \ No newline at end of file