Skip to content

Commit 33d0b3e

Browse files
authored
Add files via upload
1 parent 7399327 commit 33d0b3e

File tree

5 files changed

+247
-0
lines changed

5 files changed

+247
-0
lines changed

Contact-2021/db.sqlite3

132 KB
Binary file not shown.

Contact-2021/sqlDB.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import sqlite3
2+
from sqlite3 import Error
3+
4+
5+
def create_connection(db_file):
6+
""" create a database connection to a SQLite database """
7+
conn = None
8+
try:
9+
conn = sqlite3.connect(db_file)
10+
print(sqlite3.version)
11+
except Error as e:
12+
print(e)
13+
finally:
14+
if conn:
15+
conn.close()
16+
17+
18+
if __name__ == '__main__':
19+
create_connection(r"db.sqlite3")

Contact-2021/sqlInsert.py

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
import sqlite3
2+
from sqlite3 import Error
3+
import datetime
4+
5+
def read_contact_txt_gui_list(file_name):
6+
# Открытие файла для чтения данных.
7+
file_txt_r = open(file_name, 'r')
8+
# Переменная для хранения списка контактов.
9+
data_list_all = []
10+
# Бесконечный цикл для обработки контактов построчно.
11+
while True:
12+
# Получение строки с контактом из txt-файла.
13+
data_str = file_txt_r.readline()
14+
# Если строка пустая, то выход из цикла.
15+
if data_str == '':
16+
file_txt_r.close() # Закрытие текстового файла.
17+
break # Выход из цикла.
18+
# С каждым проходом цикла в список добавляется контакт.
19+
data_list_all.append(data_str)
20+
# Функция возвращает список контактов.
21+
return data_list_all
22+
23+
def create_connection(db_file):
24+
""" create a database connection to the SQLite database
25+
specified by db_file
26+
:param db_file: database file
27+
:return: Connection object or None
28+
"""
29+
conn = None
30+
try:
31+
conn = sqlite3.connect(db_file)
32+
except Error as e:
33+
print(e)
34+
35+
return conn
36+
37+
38+
def create_project(conn, project):
39+
sql = ''' INSERT INTO contact_data(timewrite,lastname,firstname,address,\
40+
phonenumber, email, addinform, dt, d, url_photo, img)\
41+
VALUES(?,?,?,?,?,?,?,?,?,?,?) '''
42+
cur = conn.cursor()
43+
cur.execute(sql, project)
44+
conn.commit()
45+
return cur.lastrowid
46+
47+
def write_contacts(data_list_all):
48+
database = r"db.sqlite3"
49+
# create a database connection
50+
conn = create_connection(database)
51+
with conn:
52+
for data_str in data_list_all:
53+
data_list = data_str.split('&')
54+
# Получение времени записи в БД.
55+
timewrite = datetime.datetime.now()
56+
# Получение фамилии.
57+
lastname = data_list[0]
58+
# Получение имени.
59+
firstname = data_list[1]
60+
# Получение адреса.
61+
address = data_list[2]
62+
# Получение номера телефона.
63+
phonenumber = data_list[3]
64+
# Получение электронного адреса.
65+
email = data_list[4]
66+
# Получение дополнительной информации.
67+
addinform = data_list[5]
68+
# Получение даты и времени записи контакта.
69+
dt = data_list[6]
70+
# Получение даты создания контакта.
71+
d = dt.split(' ')[0]
72+
# Получение URL (ссылки) на фотографию контакта.
73+
url_photo = lastname + d
74+
# Получение URL (ссылки) на фотографию контакта через upload_to.
75+
img = 'image/' +lastname + d + '.png'
76+
# Из полученных элементов контакта формирую кортеж.
77+
# Кортежем также называется строка в таблице БД.
78+
project = (timewrite, lastname, firstname, address, phonenumber, email, addinform, dt, d, url_photo, img)
79+
project_id = create_project(conn, project)
80+
# cur.close() # Закрываю курсор.
81+
conn.close() # Закрываю соединение с БД.
82+
83+
def main():
84+
write_contacts(read_contact_txt_gui_list('contact.txt'))
85+
86+
87+
if __name__ == '__main__':
88+
main()

Contact-2021/sqlTab.py

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
import sqlite3
2+
from sqlite3 import Error
3+
4+
5+
def create_connection(db_file):
6+
""" create a database connection to the SQLite database
7+
specified by db_file
8+
:param db_file: database file
9+
:return: Connection object or None
10+
"""
11+
conn = None
12+
try:
13+
conn = sqlite3.connect(db_file)
14+
return conn
15+
except Error as e:
16+
print(e)
17+
18+
return conn
19+
20+
21+
def create_table(conn, create_table_sql):
22+
""" create a table from the create_table_sql statement
23+
:param conn: Connection object
24+
:param create_table_sql: a CREATE TABLE statement
25+
:return:
26+
"""
27+
try:
28+
c = conn.cursor()
29+
c.execute(create_table_sql)
30+
except Error as e:
31+
print(e)
32+
33+
34+
def main():
35+
database = r"db.sqlite3"
36+
37+
sql_create_projects_table = """ CREATE TABLE IF NOT EXISTS contact_data (
38+
contact_id integer PRIMARY KEY NOT NULL,
39+
timewrite text,
40+
lastname text,
41+
firstname text,
42+
address text,
43+
phonenumber text,
44+
email text,
45+
addinform text,
46+
dt text,
47+
d text,
48+
url_photo text,
49+
img text
50+
); """
51+
52+
# create a database connection
53+
conn = create_connection(database)
54+
55+
# create tables
56+
if conn is not None:
57+
# create projects table
58+
create_table(conn, sql_create_projects_table)
59+
60+
else:
61+
print("Error! cannot create the database connection.")
62+
63+
64+
if __name__ == '__main__':
65+
main()

Contact-2021/txtpsql_new.py

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
import psycopg2
2+
import datetime
3+
4+
def read_contact_txt_gui_list(file_name):
5+
'''Для получения данных из текстового файла.
6+
Обработка данных. Функция возвращает
7+
список контактов.'''
8+
# Открытие файла для чтения данных.
9+
file_txt_r = open(file_name, 'r')
10+
# Переменная для хранения списка контактов.
11+
data_list_all = []
12+
# Бесконечный цикл для обработки контактов построчно.
13+
while True:
14+
# Получение строки с контактом из txt-файла.
15+
data_str = file_txt_r.readline()
16+
# Если строка пустая, то выход из цикла.
17+
if data_str == '':
18+
file_txt_r.close() # Закрытие текстового файла.
19+
break # Выход из цикла.
20+
# С каждым проходом цикла в список добавляется контакт.
21+
data_list_all.append(data_str)
22+
# Функция возвращает список контактов.
23+
return data_list_all
24+
25+
def write_contacts_psql(data_list_all):
26+
'''Получает список контактов. Обработка данных.
27+
Запись в БД.'''
28+
# Переменной dbn присвоена строка с параметрами
29+
# соединения к БД contactdb.
30+
dbn = 'dbname=contactdb user=postgres password=**** host=127.0.0.1'
31+
# Или можно так.
32+
#dbn = (dbname='contactdb', user='postgres', password='****', host='127.0.0.1')
33+
# Устанавливаю соединение с БД.
34+
connection = psycopg2.connect(dbn)
35+
# Получаю курсор.
36+
cursor = connection.cursor()
37+
# Для каждого контакта в списке контактов.
38+
for data_str in data_list_all:
39+
# Полученная строка data_str разделяется по символу &.
40+
data_list = data_str.split('&')
41+
# Получение времени записи в БД.
42+
timewrite = datetime.datetime.now()
43+
# Получение фамилии.
44+
lastname = data_list[0]
45+
# Получение имени.
46+
firstname = data_list[1]
47+
# Получение адреса.
48+
address = data_list[2]
49+
# Получение номера телефона.
50+
phonenumber = data_list[3]
51+
# Получение электронного адреса.
52+
email = data_list[4]
53+
# Получение дополнительной информации.
54+
addinform = data_list[5]
55+
# Получение даты и времени записи контакта.
56+
dt = data_list[6]
57+
# Получение даты создания контакта.
58+
d = dt.split(' ')[0]
59+
# Получение URL (ссылки) на фотографию контакта.
60+
url_photo = lastname + d
61+
# Получение URL (ссылки) на фотографию контакта через upload_to.
62+
img = 'image/' +lastname + d + '.png'
63+
# Из полученных элементов контакта формирую кортеж.
64+
# Кортежем также называется строка в таблице БД.
65+
dat = (timewrite, lastname, firstname, address, phonenumber, email, addinform, dt, d, url_photo, img)
66+
datain = 'INSERT INTO contact_data(timewrite, lastname, firstname, address, \
67+
phonenumber, email, addinform, dt, d, url_photo, img) \
68+
VALUES(%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)'
69+
# Выполнение SQL-запроса. Запись данных в БД.
70+
cursor.execute(datain, dat)
71+
connection.commit()
72+
cursor.close() # Закрываю курсор.
73+
connection.close() # Закрываю соединение с БД.
74+
75+
write_contacts_psql(read_contact_txt_gui_list('contact.txt'))

0 commit comments

Comments
 (0)