File size: 3,107 Bytes
7552ee6
edee679
ff0ece9
16c32c6
c8e4ab5
58cae0c
6e5ec17
edee679
 
e0c01fb
 
 
 
 
 
 
 
 
 
 
 
 
 
0a3e3b6
edee679
 
 
e0c01fb
 
 
6e5ec17
e0c01fb
 
9368cf0
e0c01fb
 
 
 
 
9368cf0
e0c01fb
 
 
 
edee679
 
 
 
e0c01fb
 
 
 
 
 
4818e9b
e0c01fb
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4818e9b
e0c01fb
 
 
 
4595fee
f18f04b
2923221
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
from flask import Flask, request, render_template, jsonify
import sqlite3
import requests
import os

app = Flask(__name__, template_folder="./")

# Создание базы данных и таблицы
def init_db():
    try:
        conn = sqlite3.connect('data.db')
        cursor = conn.cursor()
        cursor.execute('''
            CREATE TABLE IF NOT EXISTS contacts (
                id INTEGER PRIMARY KEY AUTOINCREMENT,
                name TEXT NOT NULL,
                phone TEXT NOT NULL
            )
        ''')
        conn.commit()
        conn.close()
    except Exception as e:
        print(f"Error initializing database: {e}")

# Маршрут для обработки GET-запроса
@app.route('/add_contact', methods=['GET'])
def add_contact():
    try:
        name = request.args.get('name')
        phone = request.args.get('phone')

        if not name or not phone:
            return "Both 'name' and 'phone' parameters are required.", 400

        conn = sqlite3.connect('data.db')
        cursor = conn.cursor()
        cursor.execute('INSERT INTO contacts (name, phone) VALUES (?, ?)', (name, phone))
        conn.commit()
        conn.close()

        return f"Contact added: {name} - {phone}", 200
    except Exception as e:
        print(f"Error adding contact: {e}")
        return "Internal Server Error", 500

# Маршрут для отображения таблицы контактов
@app.route('/contacts')
def show_contacts():
    try:
        conn = sqlite3.connect('data.db')
        cursor = conn.cursor()
        cursor.execute('SELECT name, phone FROM contacts')
        contacts = cursor.fetchall()
        conn.close()

        # HTML-шаблон для отображения таблицы
        html = '''
        <!doctype html>
        <html lang="en">
          <head>
            <meta charset="utf-8">
            <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
            <title>Contacts</title>
            <style>
              table {
                width: 50%;
                border-collapse: collapse;
              }
              th, td {
                border: 1px solid black;
                padding: 8px;
                text-align: left;
              }
              th {
                background-color: #f2f2f2;
              }
            </style>
          </head>
          <body>
            <h1>Contacts</h1>
            <table>
              <tr>
                <th>Name</th>
                <th>Phone</th>
              </tr>
              {% for contact in contacts %}
              <tr>
                <td>{{ contact[0] }}</td>
                <td>{{ contact[1] }}</td>
              </tr>
              {% endfor %}
            </table>
          </body>
        </html>
        '''

        return render_template_string(html, contacts=contacts)
    except Exception as e:
        print(f"Error showing contacts: {e}")
        return "Internal Server Error", 500

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=int(os.environ.get('PORT', 7860)))