Open In App

Launch Website URL shortcut using Python

Last Updated : 14 Sep, 2021
Improve
Improve
Like Article
Like
Save
Share
Report

In this article, we are going to launch favorite websites using shortcuts, for this, we will use Python’s sqlite3 and webbrowser modules to launch your favorite websites using shortcuts.

Both sqlite3 and webbrowser are a part of the python standard library, so we don’t need to install anything separately. 

The best part about this is that because we are using a database to store the websites and their shortcuts, your favorite websites will remain saved in the database even if we close the terminal or shut down the PC. So you don’t need to add your favorite websites to the database every time you execute the script.

Approach:

  • We create a new database if it does not already exist and connect it to our database.
  • We create different functions to fetch data from the database, open a website, add a new website to the database, and remove a website from the database
  • We call a while loop so that our program can listen to the user’s commands until they quit
  • We ask for a response from the user to perform a specific task

Below is the implementation:

Python3




import webbrowser  
import sqlite3        
  
# connecting to sqlite and creating
# an actual database
conn = sqlite3.connect("favorites.db")
  
c = conn.cursor()
  
c.execute("""CREATE TABLE IF NOT EXISTS favorites
        (title TEXT, url TEXT)""")
  
# Created a table named favorites
# (if it didn't already existed).
# Then inserted the headers  title 
# (which takes text as input)
# and  url  (which takes text as input)
def get_data():
    """
    Used to extract data from our database
    """
      
    c.execute('''SELECT * FROM favorites''')
    results = c.fetchall()
    return results
  
  
def get_fav(titl):
    """
    Used to extract the favorite website
    """
      
    c.execute('''SELECT * FROM favorites WHERE title=?''',
              (titl, ))
    return c.fetchone()
  
def add_fav(titl, url):
    """
    Used to add a new favorite website
    """
      
    c.execute("""INSERT INTO favorites (title, url) VALUES (?, ?)""",
              (titl, url))
    conn.commit()
  
def remove_fav(titl):
    """
    Used to remove a favorite website from the database
    """
      
    c.execute('''DELETE FROM favorites WHERE title=?''',
              (titl, ))
    conn.commit()
  
# A loop to listen to commands from the user
while True:
    print()
  
    # printing each statement like 
    # this to keep the code clean
    print("Press v to visit a favorite,", end=" ")
    print("ls for list,", end=" ")
    print("add to add a new item,", end=" ")
    print("rm to delete,", end=" ")
    print("q to quit:", end=" ")
  
    # taking input command from the user
    response = input("")
  
    if response.lower() == "v":
        shortcut = input("Enter the shortcut for the website: ")
        record = get_fav(shortcut)
  
        try:
            # opening the selected website in the browser
            webbrowser.open(record[1])
  
        except TypeError:
            # if we don't have the shortcut 
            # in the database, print this:
            print('This shortcut does not exist in the database')
  
    elif response.lower() == "ls":
        # printing the items in the database
        print(get_data())
  
    elif response.lower() == "add":
        # adding a new website to the database
        destination = input(
            "Enter URL for the shortcut (Example -> https://xyz.com): ")
  
        # adding the shortcut to the above website in
        # the database
        shortcut = input("Enter the shortcut for the URL: ")
  
        add_fav(shortcut, destination)
  
    elif response.lower() == "rm":
        
        # removing an item from the database
        shortcut = input(
            "Enter the shortcut for the URL you want to remove: ")
        remove_fav(shortcut)
        print("Removed Successfully")
  
    elif response.lower() == "q":
        break
  
    else:
        print("Enter a valid command")


Output:

Code Execution



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads