Hi mọi người , Hôm nay mình xin hướng dẫn cách tạo 1 app chặn trang web với python , Các bạn có thể áp dụng để quản lý các em nhỏ tiếp xúc với những thứ độc hại trên mạng . Để làm được 1 app chặn trang web với python thì bạn chỉ cần vài bước đơn giản thôi . Các bạn cùng mình khám phá nhé !

I. Các bước thực hiện

  • cài đặt thư viện và import thư viện python
  • Làm màn hình giao diện
  • Trên giao diện tạo 1 cửa sổ cho người dùng nhập link cần chặn
  • Viết Hàm xử lý chặn
  • Tạo ra 1 nút cho người dùng click vào để chặn trang

Lý thuyết là vậy , giờ mình bắt đầu làm thôi nào !

II . Chuẩn bị

pip install tkinter
  • Tiếp theo , Các bạn tạo 1 thư mục tên bất kỳ , và 1 file block.py trong thư mục đó , sau đó vào Visual Studio Code mở thư mục đó lên :
Thư mục

Như vậy là các bạn đã chuẩn bị xong rồi . Còn chờ gì nữa code thôi !

III. Tiến Hành

  • Các bạn copy đoạn code dưới đây và dán vào file block.py :

from tkinter import *
import ctypes, sys

def is_admin():
    try:
        return ctypes.windll.shell32.IsUserAnAdmin()
    except:
        return False

if is_admin():
    root = Tk()
    root.geometry('500x300')
    root.resizable(0,0)
    root.title("TechVidvan - Website Blocker")
    #tao ra 1 noi lay gia tri
    Label(root, text ='WEBSITE BLOCKER' , font ='arial 20 bold').pack()
    Label(root, text ='Van Son' , font ='arial 20 bold').pack(side=BOTTOM)
    host_path = 'C:\Windows\System32\drivers\etc\hosts'
    ip_address = "127.0.0.1" #ip local host
    Label(root, text ='Enter Website :' , font ='arial 13 bold').place(x=5 ,y=60)
    Websites = Text(root,font = 'arial 10',height='2', width = '40', wrap = WORD, padx=5, pady=5)
    Websites.place(x= 140,y = 60)
    #ham xu ly chan
    def Blocker():
        website_lists = Websites.get(1.0,END)
        Website = list(website_lists.split(","))
        with open ("C:\Windows\System32\drivers\etc\hosts",'+') as host_file:
            file_content = host_file.read()
            for website in Website:
                if website in file_content:
                    Label(root, text = 'Already Blocked' , font = 'arial 12 bold').place(x=200,y=200)
                    pass
                else:
                    host_file.write(ip_address + " " + website + '\n')
                    Label(root, text = "Blocked", font = 'arial 12 bold').place(x=230,y =200)
#nut click chan
    block = Button(root, text = 'Block',font = 'arial 12 bold',pady = 5,command = Blocker ,width = 6, bg = 'royal blue1', activebackground = 'sky blue')
    block.place(x = 230, y = 150)
    root.mainloop()
else:
    # Re-run the program with admin rights
    ctypes.windll.shell32.ShellExecuteW(None, "runas", sys.executable, " ".join(sys.argv), None, 1)
  • Sau đó các bạn chạy code bằng cách mở terminal lên( Ctrl + Shift+ `) và chạy lệnh python block.py:
  • Và kết quả :
Kết quả app block web

Complete rồi đó , thật đơn giản phải không nào!

IV. Kết Luận

Mọi chuyện thật dễ dàng với python phải không nào ? Mình còn rất nhiều project hay phía trước . Hãy theo dõi trang để theo dõi những bài viết hay hơn trong tương lai nhé !