Загрузка...

Скрипт Мини дб панель(говно)

Тема в разделе Python создана пользователем rasez 3 май 2025. 171 просмотр

Загрузка...
  1. rasez
    rasez Автор темы 3 май 2025 Ищу ворк dm: https://t.me/N0S3NSE 215 29 апр 2025
    ТАК ВОТ написал я в гугл питон для новокекасов (ебланов)
    и нашел чето гайды от школьников посмотрел почитал в итоге понял что :cool_bun: даже html интереснее :cool_bun:


    ЧТО ЖЕ УМЕЕТ ДАННЫЙ КОД??????? :finger_up: :finger_up: :finger_up: :finger_up:
    Самое крутое это логин меню:
    admin:admin :fap:

    Дальше идет супер бомбезный интерфейс с кнопками сапорт креатор но это не нужно
    После идет добавить юзера удалить и ИЗМЕНИТЬЬ!!!! :kidrun:

    Все сохраняется в json файл и типо ну можете хз на работу принимать долбоебов и заполнять их имена
    Есть типа защита чтобы ты не писал имя в возраст а так
    :kakashka:
    :righthand: ⁡⁡GITHUB⁡ :lefthand:
    upd: уже нравится фанатам :2011_like:


    Python
    import json
    import os
    import tkinter as tk
    from tkinter import messagebox
    import webbrowser
    import re

    PASSWORD = "admin"
    users_file = "users.json"
    LOGIN = "admin"

    if os.path.exists(users_file) and os.path.getsize(users_file) > 0:
    with open(users_file, "r", encoding="utf-8") as file:
    all_people = json.load(file)
    else:
    all_people = []

    root = tk.Tk()
    root.title("User Info Base")
    root.geometry("1000x700")
    root.config(bg="white")


    login_frame = tk.Frame(root, bg="#1e272e")
    login_frame.place(relwidth=1, relheight=1)

    tk.Label(login_frame, text=" Login", font=("Arial", 28, "bold"), bg="#1e272e", fg="white").pack(pady=60)
    tk.Label(login_frame, text="Username", font=("Arial", 20), bg="#1e272e", fg="white").pack(pady=0)
    entry_login = tk.Entry(login_frame, font=("Arial", 18), width=25, justify='center')
    entry_login.pack(pady=10)
    tk.Label(login_frame, text="Password", font=("Arial", 20), bg="#1e272e", fg="white").pack(pady=0)
    entry_password = tk.Entry(login_frame, font=("Arial", 18), show="*", width=25, justify='center')
    entry_password.pack(pady=10)

    def check_details():
    if not entry_login.get() or not entry_password.get():
    messagebox.showerror("Error", "Username and Password are required")
    return
    if entry_login.get() != LOGIN:
    return
    if entry_password.get() == PASSWORD:
    login_frame.destroy()
    show_main_app()
    else:
    messagebox.showerror("Error", "Username or Password is incorrect")

    tk.Button(login_frame, text="LOGIN", font=("Arial", 16), bg="#20bf6b", fg="white", width=15, command=check_details).pack(pady=20)


    def show_main_app():
    def open_support_link():
    webbrowser.open("https://tonviewer.com/EQA93O3YlQleajDjdOuaygtJ_U1bX_TOko9AZ7pJzyRSpsqX?section=tokens")
    def show_notification(message):
    notification_frame = tk.Frame(root, bg="#2ecc71")
    notification_frame.pack(side="bottom", fill="x")
    tk.Label(notification_frame, text=message, font=("Arial", 14), bg="#2ecc71", fg="white").pack()
    notification_frame.after(1500, notification_frame.destroy)
    def show_notification_delete(message):
    notification_frame = tk.Frame(root, bg="red")
    notification_frame.pack(fill="x")
    tk.Label(notification_frame, text=message, font=("Arial", 14), bg="red", fg="white").pack()
    notification_frame.after(1500, notification_frame.destroy)

    def update_people_list():
    listbox_people.delete(0, tk.END)
    for person in all_people:
    listbox_people.insert(tk.END, f"{person['Name']}, {person['Age']} yo, {person['Country']}, {person['Phone Number']}")
    user_count_label.config(text=f" Total Users: {len(all_people)}")

    def validate_name(name):

    if not re.match("^[A-Za-zА-Яа-яЁё ]+$", name):
    messagebox.showerror("Error", "Name must contain only letters and spaces.")
    return False
    show_notification("User added successfully!")
    return True

    def validate_age(age):
    if not age.isdigit():
    messagebox.showerror("Error", "Age must be a valid number.")
    return False
    age = int(age)
    if age < 1 or age > 100:
    messagebox.showerror("Error", "Age must be between 1 and 100.")
    return False
    return True

    def validate_country(country):
    if not country.strip():
    messagebox.showerror("Error", "Country cannot be empty.")
    return False
    return True

    def validate_phone_number(phone_number):
    if not phone_number.startswith("+") or not phone_number[1:].isdigit():
    messagebox.showerror("Error", "Phone number must start with '+' and contain only numbers.")
    return False
    return True

    def add_person():
    name = entry_name.get()
    age = entry_age.get()
    country = entry_country.get()
    number = entry_number.get()


    if not name or not age or not country or not number:
    messagebox.showerror("Error", "Fill all fields")
    return

    if not validate_name(name):
    return
    if not validate_age(age):
    return
    if not validate_country(country):
    return
    if not validate_phone_number(number):
    return


    person_data = {
    "Name": name,
    "Age": int(age),
    "Country": country,
    "Phone Number": number,
    "IsAdult": int(age) >= 18
    }

    all_people.append(person_data)
    with open(users_file, "w", encoding="utf-8") as file:
    json.dump(all_people, file, ensure_ascii=False, indent=2)

    update_people_list()
    clear_fields()

    def clear_fields():
    entry_name.delete(0, tk.END)
    entry_age.delete(0, tk.END)
    entry_country.delete(0, tk.END)
    entry_number.delete(0, tk.END)

    def delete_person():
    selected = listbox_people.curselection()
    if not selected:
    messagebox.showerror("Error", "Select a user to delete")
    return
    person = all_people[selected[0]]
    if messagebox.askyesno("Confirm", f"Delete {person['Name']}?"):
    show_notification_delete("User deleted successfully!")
    del all_people[selected[0]]
    with open(users_file, "w", encoding="utf-8") as file:
    json.dump(all_people, file, ensure_ascii=False, indent=2)
    update_people_list()

    def start_edit():
    nonlocal edit_mode, edit_index
    selected = listbox_people.curselection()
    if not selected:
    messagebox.showerror("Error", "Select a user to edit")
    return

    edit_index = selected[0]
    person = all_people[edit_index]

    entry_name.delete(0, tk.END)
    entry_name.insert(0, person["Name"])
    entry_age.delete(0, tk.END)
    entry_age.insert(0, str(person["Age"]))
    entry_country.delete(0, tk.END)
    entry_country.insert(0, person["Country"])
    entry_number.delete(0, tk.END)
    entry_number.insert(0, person["Phone Number"])

    btn_add.config(text="Save Changes", bg="#3498db", command=save_edit)
    btn_edit.config(state="disabled")
    edit_mode = True

    def save_edit():
    nonlocal edit_mode, edit_index

    name = entry_name.get()
    age = entry_age.get()
    country = entry_country.get()
    number = entry_number.get()

    if not name or not age or not country or not number:
    messagebox.showerror("Error", "Fill all fields")
    return

    if not validate_name(name):
    return
    if not validate_age(age):
    return
    if not validate_country(country):
    return
    if not validate_phone_number(number):
    return

    all_people[edit_index] = {
    "Name": name,
    "Age": int(age),
    "Country": country,
    "Phone Number": number,
    "IsAdult": int(age) >= 18
    }

    with open(users_file, "w", encoding="utf-8") as file:
    json.dump(all_people, file, ensure_ascii=False, indent=2)

    update_people_list()
    clear_fields()
    btn_add.config(text="Add User", bg="#2ecc71", command=add_person)
    btn_edit.config(state="normal")
    edit_mode = False
    edit_index = None


    top_bar = tk.Frame(root, bg="#ffffff")
    top_bar.pack(fill="x", pady=10, padx=10)

    support_button = tk.Button(top_bar, text=" Support Creator", font=("Arial", 12), bg="#ffdddd", command=open_support_link)
    support_button.pack(side="left", padx=5)

    user_count_label = tk.Label(top_bar, text="", font=("Arial", 14), bg="#ffffff")
    user_count_label.pack(side="right", padx=10)

    form_frame = tk.Frame(root, bg="#f0f0f0")
    form_frame.pack(pady=10, padx=10)

    tk.Label(form_frame, text="Name:", font=("Arial", 14), bg="#f0f0f0").grid(row=0, column=0, sticky="w")
    entry_name = tk.Entry(form_frame, font=("Arial", 14), width=30)
    entry_name.grid(row=0, column=1)

    tk.Label(form_frame, text="Age:", font=("Arial", 14), bg="#f0f0f0").grid(row=1, column=0, sticky="w")
    entry_age = tk.Entry(form_frame, font=("Arial", 14), width=30)
    entry_age.grid(row=1, column=1)

    tk.Label(form_frame, text="Country:", font=("Arial", 14), bg="#f0f0f0").grid(row=2, column=0, sticky="w")
    entry_country = tk.Entry(form_frame, font=("Arial", 14), width=30)
    entry_country.grid(row=2, column=1)

    tk.Label(form_frame, text="Phone Number:", font=("Arial", 14), bg="#f0f0f0").grid(row=3, column=0, sticky="w")
    entry_number = tk.Entry(form_frame, font=("Arial", 14), width=30)
    entry_number.grid(row=3, column=1)

    btn_frame = tk.Frame(root, bg="white")
    btn_frame.pack(pady=10)

    btn_add = tk.Button(btn_frame, text="Add User", font=("Arial", 14), bg="#2ecc71", fg="white", width=20, command=add_person)
    btn_add.pack(side="left", padx=5)

    btn_edit = tk.Button(btn_frame, text="Edit Selected", font=("Arial", 14), bg="#e67e22", fg="white", width=20, command=start_edit)
    btn_edit.pack(side="left", padx=5)

    btn_delete = tk.Button(btn_frame, text="Delete Selected", font=("Arial", 14), bg="#e74c3c", fg="white", width=20, command=delete_person)
    btn_delete.pack(side="left", padx=5)

    listbox_frame = tk.Frame(root)
    listbox_frame.pack(padx=10, pady=10, fill="both", expand=True)

    listbox_people = tk.Listbox(listbox_frame, font=("Courier", 14), width=80, height=10, bg="#ecf0f1")
    listbox_people.pack(side="left", fill="both", expand=True)

    scrollbar = tk.Scrollbar(listbox_frame, orient="vertical", command=listbox_people.yview)
    scrollbar.pack(side="right", fill="y")

    listbox_people.config(yscrollcommand=scrollbar.set)

    edit_mode = False
    edit_index = None

    update_people_list()

    root.mainloop()
     
    3 май 2025 Изменено
  2. Апатия
    Апатия 3 май 2025 444 980 15 июн 2021
    После этого можно было закончить в целом
    --- Сообщение объединено с предыдущим 3 май 2025
    Красава вобщем
     
    1. rasez Автор темы
      Апатия, так это максимальный уровень защиты.
  3. sh4te
    sh4te 3 май 2025 https://t.me/twitchpaty - новости twitch 1560 3 дек 2023
    обьясните в двух словах для чего эта хуйня я так и не понял
     
    1. rasez Автор темы
      sh4te, да я сам не ебу, вот ты сидишь отчет делаешь по классу 1А в школе вписал
      Артем Павлов
      6 лет
      номер его мамы
      И адресс
      3 май 2025 Изменено
    2. rasez Автор темы
      sh4te, ну это мне нужно еще годик поучить и может будет софт для докса а пока просто фо фан
Top