Connect with us

django

Complete tutorial on django authentication system [2020]

Published

on

django

Hi, in this article i will teach you to create a django authentication system completely from scratch. You probably searching for django authentication tutorial and that’s why you are here. Don’t worry by the end reading this complete understanding you will have a clear understanding of how django authentication system works.

Sometimes a developer might need to add sign in and sign up option in a django website and today we will be building these options.

How our website will work:

Our website will have an accounts application and once a user wants to register into our website then they will go to the register page and after registering successfully they will be able to login and see their dashboard.

It is a reusable app that you edit according to your taste. Later on in this article i will be teaching you what you can do with this in order to make it more interactive and user friendly.

Let’s start building our django project by first creating a new project in django. create a new folder and name it django_authentication_system and create a virtual environment and activate it. Then you are good to go.

Create a project in django:

To create a new project in django just type the following command in command prompt:

django-admin startproject login .

Once you type the above command then your project will be created successfully. Now lets check weather our project is working or not by typing the following command in command prompt:

python manage.py runserver

Just paste the address 127.0.0.1:8000 in the address bar of your browser and you will see something like this:

With that our project is successfully created. Now go ahead and create a new application inside your django project by typing the following command in command prompt:

python manage.py createapp accounts

This will create a new application folder named accounts inside the project root directory.

Register app into settings:

Now open up settings.py file inside login folder and register your app there. You will see something like this:

mubashartech.com

Open up views.py file inside accounts application and add these lines of code to it.

Edit accounts/views.py file:

from django.shortcuts import render, redirect
from django.contrib.auth.forms import UserCreationForm
from django.contrib.auth.decorators import login_required
# Create your views here.
def IndexView(request):
	return render(request, 'index.html')
@login_required
def dashboardView(request):
	return render(request, 'dashboard.html')
def RegisterView(request):
	if request.method=='POST':
		form = UserCreationForm(request.POST)
		if form.is_valid():
			form.save()
			return redirect('login')
	else:
		form = UserCreationForm()
	return render(request, 'registration/register.html', {'form': form})

Now edit apps.py file inside accounts application and add these lines of code to it.

Edit accounts/apps.py

from django.apps import AppConfig
class AccountsConfig(AppConfig):
    name = 'accounts'

Now go ahead and create a new file inside accounts application and name it as urls.py and add these lines of code to it.

Edit accounts/urls.py

from django.urls import path
from django.contrib.auth.views import LoginView
from . import views
urlpatterns = [
	path('', views.IndexView, name='index'),
	path('dashboard/', views.dashboardView, name='dashboard'),
	path('login/', LoginView.as_view(), name='login'),
	path('register/', views.RegisterView, name='register')
	#path('logout/')
]

Creating folders for templates.

create a folder inside accounts application and name it as templates.

Now create a new file in templates folder you’ve just created and name it as index.html and add these lines of code to it.

<!DOCTYPE html>
<html>
<head>
	<title>authentications</title>
</head>
<body>
	<h1>Welcome to the authentication project </h1>
</body>
</html>

Also create a new folder inside templates folder and name it as dashboard.html and add these lines of code to it.

<!DOCTYPE html>
<html>
<head>
	<title>dashboard</title>
</head>
<body>
	<h1>Welcome to the dashboard {{user.username}}</h1>
</body>
</html>

Now create a new folder inside templates folder and name it as registration. Create a new file in registration folder and name it as login.html and add these lines of code to it.

<form method="POST" action="{% url 'dashboard' %}" >
	{% csrf_token %}
	{{form.as_p}}
	<button>login</button>
</form>

create another file inside registration folder and name it as register.html and add these lines of code to it.

<form method="POST">
	{% csrf_token %}
	{{form.as_p}}
	<button>Register</button>
</form>

Now our templates section is completed, move ahead and register your accounts urls inside your project urls.py file.

login/urls.py

from django.contrib import admin
from django.urls import path, include
urlpatterns = [
    path('accounts/', include('accounts.urls')),
    path('admin/', admin.site.urls),
]

Open up settings.py file and at the bottom and these lines of code to it.

Edit login/settings.py file:

LOGIN_REDIRECT_URL = 'accounts/dashboard'

This will tell django to redirect user once it is logged in.

Now go ahead and run your server.

Running server:

127.0.0.1:8000 and tap enter, you will see an error page. Don’t worry the error page your are seeing is because we have mapped our urls after accounts/ and not on home page url.

mubashartech.com

Change your address from 127.0.0.1:8000 to 127.0.0.1:8000/accounts and you will see something like this:

mubashartech.com

Consider this as your home page till now and if you want to register there then just type 127.0.0.1:8000/accounts/register and you will see something like this.

mubashartech.com

Once you complete registration then go to 127.0.0.1:8000/accounts/login and you will be able to login there. Once you go to the address, you will see something like this:

mubashartech.com

Enter you credentials that you have used to register in the previous page and press enter you will see a welcome page like this.

mubashartech.com

With this, we have successfully build an authentication system in django and you can use it according to your needs to build things on top of this. You can surely check out the docs for this tutorial as well.

What you can build with this:

Well in depends on your interest, but in my opinion this application can be a base in building any social application.

It can be used to authenticate users inside a blog application. Actually i have already created a tutorial on create a website with django, so make sure to check that here .

It can be used to validate users in any eCommerce website as well.

It can also be used to validate clients on online services based website we created in a previous article here.

With this our article is completed and if you haven’t checked my post about how to use bootstrap in our website. make sure to check that . I hope you’ve learned a lot by reading this blog post and if you stuck at any point or want to ask any question then feel free to ask it in the comment section and i will definitely answer. Thanks.

Continue Reading
Click to comment

Leave a Reply

Your email address will not be published. Required fields are marked *

django

How to Connect django to mysql in ubuntu[2020]

Published

on

By

Connect Django to MySQL is required because the database that comes with Django by negligence is sqlite3. Sqlite3 is a database that can be used inside small apps and outlines. But when it comes to exhibiting some high-quality apps/web apps in Django, it became wanted to connect it with a good database that can handle a large amount of data. In this post, we are working to do that.

To rise connecting our Django project to the database, you should oblige Python, Django, and XMPP server installed on your system.

To install xampp on your system, you must download the app and next install it inside your system. Here is an expeditious guide to installing xampp on your ubuntu running system.

You can likewise install the virtual environment and Django by following this example.

If you have Django and app installed on your system, suddenly, you can start to connect Django to MySQL.

Create a new project in Django:

To build a new project in Django, type the following commands in your terminal.

Django-admin start project MySQL connection

Open up xampp and run everything the services.

Once you do that, go to localhost/PHPMyAdmin and generate a new database.

I will name it a MySQL connection, and you can call it whatever you need.

Once you function to create, then you are good to go. You don’t need to change anything there.

Startup settings.py file inside your Django project and move to the following part.

By default, our Django project is pointing to the sqlite3 database, and we require to improve this to manage a MySQL database. So let us go ahead and replace all of this text with the following code.

Once you change these settings, then you are good to go.

Now Save all the settings and open up the terminal and type the following command.

python manage.py migrate

Everything is running fine, and if you go to PHPMyAdmin, you would reasonably see something like this.

You see that all the tables are favourably created. Thanks for reading this comprehensive post. If you have any questions, you can ask me in the comment section. Thanks.

Continue Reading

django

5 amazing books to read as a django developer [2020]

Published

on

By

In this chapter, I will talk about five superb books to learn as a Django developer in 2020. So let us perceive started.

As you all might know that books play a significant role in learning anything weather, it is about the stock market or any other field like programming. So as readers have a significant role in learning to program quickly and efficiently, we will be discussing five amazi////////ng books to read as a Django developer in 2020 because Django is a high-level framework. If you want to master it, then you should probably go with the books written by Django experts to learn the crucial topics of Django.

My no. 1 advice for Django beginners:

Before diving into the books list first, let us discuss what a beginner should do when starting Django development.

When You are starting in Django, then you should go with its Documentation.

Because Django has very comprehensive and clear Documentation and you could see a lot of Documentation. But that Documentation is written professionally, and as a beginner, you might be stuck. So here is the list of books you might concern when you are starting in Django development.

Learn through building projects in Django:

While you are learning to program, you might not follow some professional practices that will lead you to be good. To understand the important stuff that you will need to use in some professional projects, you should start to learn to code by building projects.

I have some cool projects that I write about so that beginners in Django and intermediate-level programmers benefit. Here is the list of some cool projects that I recommend you start building with.

i – Create your website with Django: you can get the tutorial by clicking here.

Ii – Create a resume builder website with Django: Here is the complete tutorial you can follow.

Iii – How to use bootstrap with Django: This post will teach you the best way to use bootstrap with your Django projects to make them responsive. Could you get it here?

Also, I have prepared a list of projects that you can build right now. You can check that complete article here.

Now you can begin with the list of notable books for you to be good at Django.

A list of 5 Amazing books you should read as a Django developer.

Book # 1:

Django for Beginners (best book on this list):

The best book on Django is Django for beginners by William S. Vincent. I kept this book on top of the list because it is hugely summarized and very comprehensively explained all the topics for beginners. This book starts with a beginner teaching the basics of Django. It then moves you around some high-level programming in the Django framework whenever you feel comfortable in Django development. In short, it will teach everything you need to become a master in the Django framework.

Book # 2:

Django 2 web development Cook Book:

The next great book on this list is also a very great book for beginners. Jake Kronika writes it, and it also covers a lot of beginner stuff. This book talks about Django 2, but the logic builds through this book can be used inside Django 3.

Book # 3:

Django 2 by Example:

Antonio Mele writes this book, and it is one of my favorite books because it starts with build the projects, and then by the end of building many projects taught in this, you will eventually become a master in Django.

Book # 4:

Two Scoops of Django:

Another favorite book of mine is Two scoops of Django, and it is a bit older. It only talks about Django 1.8, but the logic you will learn in this book can be implied in the latest versions.

Book # 5:

The definitive guide to Django:

This book is also very informative if you want to learn about Django web development from start to end. Once you finish reading and practicing the lessons inside this book, you will have a thorough understanding of how Django works.

I hope you have enjoyed reading this tutorial now; if you have any questions, please ask them in the comment section, and I will answer. You can also check out the post about Django books by data-flair here. Thanks.

Continue Reading

django

Amazing Project ideas for beginners in django [2020]

Published

on

By

django

Hi, in this article, I will introduce you to some of my Amazing project ideas for beginners in Django, So lets get started.

Remember one thing in mind you cannot proceed further without doing projects and practicing much in the language or framework you are working on. Once you do some tasks, eventually, your knowledge will become apparent, and you will start doing what you want to do in programming.

Now you might know the importance of doing projects in Django. Let us Discuss some Amazing project ideas for beginners in Django.

No 1: Build a TodoList App

While building this project, you will learn quite a lot in Django because it will give you in-depth knowledge of how everything fits in Django. After all, you will be using HTML, CSS, and javascript with Django to make your to-do list app cool, and you will learn a lot.

No 2: Build Your Blog Using Django:

Importance of building your blog for being programming is even more. Because by having a blog, you can share your thoughts with others, and you will learn a lot. If you want to do a project using Django, then you should go with making your blog.

No 3: Build a Personal website using Django:

This is quite similar to the application above because you can embed your blog inside a static home page website. So here is my advice for creating your website.

Try to create a website with a static homepage and create contact and about us pages. Then create a blog application and embed it inside your website. In this, your website will look more professional, and you will learn many fundamentals of Django by building this project. So go ahead and do that. I have a pretty great tutorial on this project, and you can reference that tutorial by going to the below link.

My website tutorial link: click here.

No 4: Build your portfolio Website:

Let me introduce you to what a portfolio website is:

A portfolio website is simply a website where you can showcase your work. Try to make a website where you will tell other people what you can do and post some of your projects there.

I have a comprehensive tutorial on this project as well, and you can check that as well.

No 5: Build an Ecommerce Website:

Building an eCommerce website in Django can be challenging, and it will also help you make a strong logic about building an eCommerce website using Django. Try to make a simple online shop and add cart options to it, and then you can use this application to sell your projects online.

You can also read 12 project ideas by pythonistaplanet by clicking here.

I hope you have quite a good knowledge of how to think for a project and start building it. If you have any questions or queries, then feel free to ask in the comment section, and I will answer. Thanks.

Continue Reading

Trending