File size: 2,502 Bytes
7552ee6
edee679
ff0ece9
16c32c6
c8e4ab5
58cae0c
6e5ec17
edee679
 
 
 
 
 
 
 
 
 
 
 
 
0a3e3b6
edee679
 
 
 
 
6e5ec17
edee679
 
9368cf0
edee679
 
 
 
 
9368cf0
edee679
 
 
 
 
 
 
 
 
 
4818e9b
edee679
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4818e9b
edee679
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
from flask import Flask, request, render_template, jsonify
import sqlite3
import requests
import os

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

# Создание базы данных и таблицы
def init_db():
    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()

# Маршрут для обработки GET-запроса
@app.route('/add_contact', methods=['GET'])
def add_contact():
    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

# Маршрут для отображения таблицы контактов
@app.route('/contacts')
def show_contacts():
    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)

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