Deleting a URL
00:00
Delete a URL. Your Python URL shortener app is great for sharing a link with friends. Once they’ve visited a link, you may want to delete the shortened URL. Just as with the update_db_clicks()
function, you start by creating a new function in crud.py
.
00:27
First, note that you call the function deactivate_db_url_by_secret_key()
and delete_db_url_by_secret_key()
. Consequently, you set the .is_active
attribute to False
instead of deleting the database entry completely. Remember that the database queries where you requested a URL object contained the filter that the URL must be active.
00:52 This means that any deactivated URLs won’t get returned in the database calls. To the user, it will look like the URL was deleted, but only you as a super admin can actually complete the deletion action.
01:05
This has the advantage that you can recover a deactivated URL if a user changes their mind about it being disabled. This function takes secret_key
as an argument.
01:16
Only the creator of a shortened URL knows this secret_key
. It’s a good security measure when only the creator can deactivate a URL. Now, the only part that’s missing is an endpoint to call this function.
01:31
Open main.py
one last time and add a delete_url()
function, as seen on-screen. You use the @app.delete()
decorator to indicate that delete_url()
accepts DELETE requests. However, this deletion action is only allowed if the request body contains the appropriate secret_key
.
01:52
This secret_key
must be a part of the URL seen on-screen, and it’s an argument of the delete_url()
function.
02:06
The body of delete_url()
probably looks familiar by now. You use an assignment expression (:=
) to assign db_url
the return of crud.deactivate_db_url_by_secret_key()
.
02:21
If a database entry with the provided secret_key
exists and was deactivated, then you return the success message.
02:36
Otherwise you trigger raise_not_found()
. Now you’re able to deactivate URLs that aren’t needed anymore. When a shortened URL is active, it will forward you to the target URL.
02:53 But once you deactivate it,
03:08 the forward to the target URL won’t work anymore. This means you’ve created a fully functional URL shortener. In the next section of the course, you’ll review what you’ve covered.
Become a Member to join the conversation.