<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Yash Patel</title>
    <description>The latest articles on Forem by Yash Patel (@yashpatel_py).</description>
    <link>https://forem.com/yashpatel_py</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F518250%2F0d03e57c-90e6-4caf-a186-efc182f5116c.jpg</url>
      <title>Forem: Yash Patel</title>
      <link>https://forem.com/yashpatel_py</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/yashpatel_py"/>
    <language>en</language>
    <item>
      <title>Django - reCaptcha</title>
      <dc:creator>Yash Patel</dc:creator>
      <pubDate>Sun, 23 Jul 2023 09:35:04 +0000</pubDate>
      <link>https://forem.com/yashpatel_py/django-recaptcha-581b</link>
      <guid>https://forem.com/yashpatel_py/django-recaptcha-581b</guid>
      <description>&lt;p&gt;Hello everyone..!&lt;/p&gt;

&lt;p&gt;To get started with django-recaptcha, you first need to create a Django project and a Django app. But if you have already created them, you are ready to go.&lt;/p&gt;

&lt;p&gt;If you are new to Django and don't know how to create a Django project, then you can read my blog post on &lt;a href="https://dev.to/yashpatel_py/what-is-django-3i6b"&gt;"What is Django?"&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If you are clear with the above instructions, then let's get started!&lt;/p&gt;

&lt;h2&gt;
  
  
  Installing reCaptcha
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Install &lt;code&gt;django-recaptcha&lt;/code&gt; you can find link here &lt;a href="https://pypi.org/project/django-recaptcha/#installation" rel="noopener noreferrer"&gt;click me&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Install the package using command: &lt;code&gt;pip install django-recaptcha&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;Note: Just for your information, the project name and app name might be different for you than mine. In the instructions, I used "Django project" and "Django app" as placeholders. When creating your own project and app, you can name them whatever you like.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Configuring reCaptcha in django settings
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Open &lt;code&gt;settings.py&lt;/code&gt; file and in &lt;code&gt;INSTALLED_APPS&lt;/code&gt; list and write &lt;code&gt;'captcha'&lt;/code&gt;.
```python
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;INSTALLED_APPS = [&lt;br&gt;
    ...,&lt;br&gt;
    'captcha',&lt;br&gt;
    ...&lt;br&gt;
]&lt;/p&gt;



&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
- Now add reCaptcha `public` and `private` key `settings.py`.
    ```python


RECAPTCHA_PUBLIC_KEY = 'MyRecaptchaKey123'
RECAPTCHA_PRIVATE_KEY = 'MyRecaptchaPrivateKey456'


&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;
  
  
  reCaptcha configuration on Google Cloud
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Go to: &lt;a href="https://www.google.com/recaptcha/about/" rel="noopener noreferrer"&gt;reCaptcha (google.com)&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click on &lt;code&gt;v3 Admin Console&lt;/code&gt; (You need to login with google account)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In label section you can right any label name.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu7px2b75xt05ka6cqd1d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu7px2b75xt05ka6cqd1d.png" alt="reCaptcha lebal"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In reCaptcha type you can select same as given in below image.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl3lb6hfpqejjggq5do3q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl3lb6hfpqejjggq5do3q.png" alt="reCaptcha type"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In domains setion you can write the default &lt;code&gt;IP&lt;/code&gt; of django server as shown in below image.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5p7e4f3ou1v2itogzw4m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5p7e4f3ou1v2itogzw4m.png" alt="Domains Section"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Now, expand &lt;code&gt;Google Cloud Platform&lt;/code&gt; dropdown menu and write project name and click on submit.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Once you submit, you will get 2 Keys&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;First key will be &lt;code&gt;site key&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Second key will be &lt;code&gt;Secret key&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy7ipctc9eav02u0xrbqj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy7ipctc9eav02u0xrbqj.png" alt="site and secret keys"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Configure Public &amp;amp; Private key
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Copy &lt;code&gt;Site key&lt;/code&gt; and paste it in &lt;code&gt;settings.py&lt;/code&gt; file in the variable called &lt;code&gt;RECAPTCHA_PUBLIC_KEY&lt;/code&gt;.
```python
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;RECAPTCHA_PUBLIC_KEY = 'XXXXXXXXXXXXXXXXXXXXXXX'&lt;/p&gt;


&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
- Copy `Secret key` and paste it in `settings.py` file in the variable called `RECAPTCHA_PRIVATE_KEY`.
    ```python


RECAPTCHA_PRIVATE_KEY = '--XXXXXXXXXXXXXXXXXXXXXXX--'


&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;
  
  
  Google reCAPTCHA setting
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;After Copying and Pasting The keys Click on GO TO &lt;code&gt;SETTINGS&lt;/code&gt; given below the &lt;code&gt;private key&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Check every detail and hit on back arrow button given on the top.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fewszb2jc072v2xitpz8i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fewszb2jc072v2xitpz8i.png" alt="Back button"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;And you should see your console.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff7sz3e6arzki2ezwp22i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff7sz3e6arzki2ezwp22i.png" alt="reCaptcha console"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Creating User creation form
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;In django app folder create file called &lt;code&gt;forms.py&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;We need to open the file and create a form that allows register new user and we will also add a reCaptcha field.&lt;/li&gt;
&lt;li&gt;Below is the code for registering new user and adding reCaptcha field.
```python
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;from django.contrib.auth.forms import UserCreationForm&lt;br&gt;
from django.contrib.auth.models import User&lt;/p&gt;
&lt;h1&gt;
  
  
  Importing Captcha
&lt;/h1&gt;

&lt;p&gt;from captcha.fields import ReCaptchaField&lt;/p&gt;
&lt;h1&gt;
  
  
  create a user
&lt;/h1&gt;

&lt;p&gt;class CreateUserForm(UserCreationForm):&lt;br&gt;
    class Meta:&lt;br&gt;
        model = User&lt;br&gt;
        fields = ['username', 'email', 'password1', 'password2']&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Adding reCaptcha field    
captcha = ReCaptchaField()
&lt;/code&gt;&lt;/pre&gt;



&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
## Creating Views
- Open `views.py` file and import some packages.
```python


from django.shortcuts import render, redirect
from .forms import CreateUserForm


&lt;/code&gt;&lt;/pre&gt;

&lt;ul&gt;
&lt;li&gt;Write home view function.
```python
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;def home(request):&lt;br&gt;
    return render(request, 'index.html')&lt;/p&gt;



&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
- Write register view function.
```python


def register(request):
    form = CreateUserForm()

    if request.method == "POST":
        form = CreateUserForm(request.POST)
        if form.is_valid():
            form.save()
            return redirect('home')

    context = {'form': form}
    return render(request, 'register.html', context)


&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;
  
  
  Creating urls for views
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Open urls.py file in your django app. If you do not have that file then you can create one.&lt;/li&gt;
&lt;li&gt;Write below code:
```python
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;from django.urls import path&lt;br&gt;
from . import views&lt;/p&gt;

&lt;p&gt;urlpatterns = [&lt;br&gt;
    path('', views.home, name='home'),&lt;br&gt;
    path('register/', views.register, name='register'),&lt;br&gt;
]&lt;/p&gt;


&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- go to urls.py file in django project folder and write below code:
```python


from django.contrib import admin
from django.urls import path, include
from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('&amp;lt;your_app_name&amp;gt;.urls')),
]


&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;
  
  
  Templates setup
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Create &lt;code&gt;templates&lt;/code&gt; folder in your django app folder.&lt;/li&gt;
&lt;li&gt;Create file called &lt;code&gt;base.html&lt;/code&gt; in templates folder.&lt;/li&gt;
&lt;li&gt;Create folder and name it same as your app name.&lt;/li&gt;
&lt;li&gt;create file called &lt;code&gt;index.html&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Below is the code for &lt;code&gt;base.html&lt;/code&gt;.
```html
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;br&gt;
&lt;br&gt;
&lt;/p&gt;
&lt;br&gt;
    &lt;br&gt;
    &lt;br&gt;
    &lt;br&gt;
    &lt;br&gt;
        Security - {% block title %}&lt;br&gt;
        {% endblock title %}&lt;br&gt;
    &lt;br&gt;
&lt;br&gt;
&lt;br&gt;
    {% block content %}&lt;br&gt;
    {% endblock content %}&lt;br&gt;
&lt;br&gt;



&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- Below is the code for `index.html`.
```html


{% extends 'base.html' %}

{% block title %}Home{% endblock title %}

{% block content %}

&amp;lt;nav&amp;gt;
    &amp;lt;a href="{% url 'home' %}"&amp;gt;
        &amp;amp;nbsp; Home
    &amp;lt;/a&amp;gt;
    &amp;lt;div&amp;gt;


        &amp;lt;ul&amp;gt;
            &amp;lt;li&amp;gt;
                &amp;lt;a type="button" href="{% url 'register' %}"&amp;gt;Register&amp;lt;/a&amp;gt;
            &amp;lt;/li&amp;gt;
            &amp;lt;li&amp;gt;

                &amp;lt;a type="button" href=""&amp;gt;Login&amp;lt;/a&amp;gt;
            &amp;lt;/li&amp;gt;
        &amp;lt;/ul&amp;gt;
    &amp;lt;/div&amp;gt;
&amp;lt;/nav&amp;gt;

&amp;lt;body&amp;gt;
    &amp;lt;br&amp;gt;
    &amp;lt;br&amp;gt;
    &amp;lt;div class="text-center"&amp;gt;

        &amp;lt;a class="btn btn-info" type="button" href="{% url 'register' %}"&amp;gt; &amp;lt;i class="fa fa-user" aria-hidden="true"&amp;gt;&amp;lt;/i&amp;gt;
            &amp;amp;nbsp; Make an account &amp;lt;/a&amp;gt;
    &amp;lt;/div&amp;gt;
&amp;lt;/body&amp;gt;
{% endblock content %}


&lt;/code&gt;&lt;/pre&gt;

&lt;ul&gt;
&lt;li&gt;Below is the code for &lt;code&gt;register.html&lt;/code&gt;.
```html
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;{% extends 'base.html' %}&lt;/p&gt;

&lt;p&gt;{% block title %}Register User{% endblock title %}&lt;/p&gt;

&lt;p&gt;{% block content %}&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;h3&amp;gt;Create Account&amp;lt;/h3&amp;gt;
&amp;lt;h5&amp;gt;Secure your account today!&amp;lt;/h5&amp;gt;
&amp;lt;br&amp;gt;


    {% csrf_token %}

    {{form}}
    Create Account


&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;


    {% comment %} &amp;lt;p&amp;gt;Already have an account? &amp;lt;/p&amp;gt; &amp;lt;a href="%20url%20''%20"&amp;gt;Login&amp;lt;/a&amp;gt; {% endcomment %}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;{% endblock content %}&lt;/p&gt;



&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- If you wish you can add some `bootstrap css`.

## Finally done with all configuration
- Now, follow below commands and you will be fine.
- First, write command to migrate the project `python manage.py migrate`.
- Second, write command to start the server `python manage.py runserver`.

### You can also download django code from my [GutHub](https://github.com/yashpatel-py/django_recaptcha)

## Thank you &amp;lt;3
This is it for this blog. If you have any doubt please let me know in comments and do not forget to react on this blog and follow me for more amazing content link this.
&lt;/code&gt;&lt;/pre&gt;

</description>
      <category>django</category>
      <category>googlecloud</category>
      <category>security</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>What is django?</title>
      <dc:creator>Yash Patel</dc:creator>
      <pubDate>Sat, 15 Apr 2023 17:47:59 +0000</pubDate>
      <link>https://forem.com/yashpatel_py/what-is-django-3i6b</link>
      <guid>https://forem.com/yashpatel_py/what-is-django-3i6b</guid>
      <description>&lt;p&gt;Django is a high-level Python web framework that enables the rapid development of secure and maintainable websites and web applications. It follows the Model-View-Controller (MVC) architectural pattern, but with some variations, such as using the Model-View-Template (MVT) pattern instead.&lt;/p&gt;

&lt;p&gt;Django provides a robust set of tools and libraries for handling common web development tasks, such as handling forms, authentication, routing, database migrations, and more. It also emphasizes the concept of "batteries included", which means that it includes many useful features out of the box, so developers don't have to spend time building everything from scratch.&lt;/p&gt;

&lt;p&gt;Django is a popular choice for web development due to its simplicity, scalability, and versatility. It is used by many companies and organizations, including Instagram, Spotify, Mozilla, and The Washington Post, among others.&lt;/p&gt;

&lt;p&gt;So, Lets Dive In 🏊...!&lt;br&gt;
&lt;a href="https://i.giphy.com/media/f6z5TkrTIBZILYOd1t/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/f6z5TkrTIBZILYOd1t/giphy.gif"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Creating a Virtual Environment in Windows
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnq7pqeuxkvj4czzmq1jm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnq7pqeuxkvj4czzmq1jm.png" alt="windows"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open the command prompt by pressing the &lt;code&gt;Windows key + R&lt;/code&gt; and then typing &lt;code&gt;cmd&lt;/code&gt; in the Run dialog box.&lt;/li&gt;
&lt;li&gt;Navigate to the directory where you want to create your virtual environment using the &lt;code&gt;cd&lt;/code&gt; command. For example, to navigate to the desktop, you can type &lt;code&gt;cd Desktop&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Once you're in the desired directory, enter the command &lt;code&gt;python -m venv myenv&lt;/code&gt; to create a virtual environment named &lt;code&gt;myenv&lt;/code&gt;. You can choose any name for your virtual environment.&lt;/li&gt;
&lt;li&gt;Activate the virtual environment by entering the command &lt;code&gt;source myenv\Scripts\activate&lt;/code&gt;. You should see the name of your virtual environment appear in parentheses in the command prompt.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;
  
  
  Creating a Virtual Environment in Mac/Linux
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc1khy5b582xylyrprvpw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc1khy5b582xylyrprvpw.png" alt="mac/linux"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open the terminal by pressing &lt;code&gt;Command + Spacebar&lt;/code&gt; and then typing &lt;code&gt;terminal&lt;/code&gt; in the Spotlight Search bar.&lt;/li&gt;
&lt;li&gt;Navigate to the directory where you want to create your virtual environment using the &lt;code&gt;cd&lt;/code&gt; command. For example, to navigate to the desktop, you can type &lt;code&gt;cd Desktop&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Once you're in the desired directory, enter the command &lt;code&gt;python3 -m venv myenv&lt;/code&gt; to create a virtual environment named &lt;code&gt;myenv&lt;/code&gt;. You can choose any name for your virtual environment.&lt;/li&gt;
&lt;li&gt;Activate the virtual environment by entering the command &lt;code&gt;source myenv/bin/activate&lt;/code&gt;. You should see the name of your virtual environment appear in parentheses in the terminal.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That's it! You have successfully created a virtual environment in both Windows and Mac/Linux. Now you can install any packages or dependencies required for your project within the virtual environment without affecting the system-wide Python installation.&lt;/p&gt;
&lt;h2&gt;
  
  
  Installing Django
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Open a command prompt or terminal window.&lt;/li&gt;
&lt;li&gt;Check if Python is already installed on your system by running the command &lt;code&gt;python --version&lt;/code&gt;. If Python is not installed, download and install Python from the official website.&lt;/li&gt;
&lt;li&gt;Once Python is installed, run the command pip install django to install Django.&lt;/li&gt;
&lt;li&gt;Wait for the installation to complete. This might take a few minutes depending on your internet connection speed.&lt;/li&gt;
&lt;li&gt;Once the installation is complete, verify the installation by running the command &lt;code&gt;django-admin --version&lt;/code&gt;. This should output the version number of Django installed on your system.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Congratulations! You have successfully installed Django on your local machine. You can now start building your web applications using the Django web framework.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/qx8pi39Lwm9Xm2audb/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/qx8pi39Lwm9Xm2audb/giphy.gif"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  How to Create a New Django Project.
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Open your terminal or command prompt.&lt;/li&gt;
&lt;li&gt;Navigate to the directory where you have created virtual environment and make sure your virtual environment is activated.&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Run the following command to create a new Django project:&lt;br&gt;
&lt;/p&gt;

&lt;pre class="highlight shell"&gt;&lt;code&gt;django-admin startproject project_name
&lt;/code&gt;&lt;/pre&gt;



&lt;p&gt;Replace &lt;code&gt;project_name&lt;/code&gt; with the name you want to give your project.&lt;/p&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;Once the project is created, navigate to the project directory using the following command:&lt;br&gt;
&lt;/p&gt;

&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;project_name
&lt;/code&gt;&lt;/pre&gt;



&lt;p&gt;Again, replace &lt;code&gt;project_name&lt;/code&gt; with the name of your project.&lt;/p&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;To test that your project has been created successfully, run the following command:&lt;br&gt;
&lt;/p&gt;

&lt;pre class="highlight shell"&gt;&lt;code&gt;python manage.py runserver
&lt;/code&gt;&lt;/pre&gt;



&lt;p&gt;This will start the development server. You should be able to see the Django welcome page by navigating to &lt;code&gt;http://localhost:8000/&lt;/code&gt; in your web browser.&lt;/p&gt;


&lt;/li&gt;

&lt;/ol&gt;

&lt;p&gt;That's it! You've successfully created a new Django project.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to create Django App
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Open a terminal or command prompt.&lt;/li&gt;
&lt;li&gt;Navigate to the root directory of your Django project (the folder where &lt;code&gt;manage.py&lt;/code&gt; is present).&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Run the following command:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python manage.py startapp &amp;lt;app_name&amp;gt;
&lt;/code&gt;&lt;/pre&gt;


&lt;p&gt;Replace &lt;code&gt;&amp;lt;app_name&amp;gt;&lt;/code&gt; with the name of your app. For example, if you want to create an app called &lt;code&gt;blog&lt;/code&gt;, you would run:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python manage.py startapp blog
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Django will create a new directory with the name you provided for the app. The directory will contain several files and subdirectories.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Open the &lt;code&gt;settings.py&lt;/code&gt; file in your Django project folder and add the name of your app to the &lt;code&gt;INSTALLED_APPS&lt;/code&gt; list. For example:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;INSTALLED_APPS&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;django.contrib.admin&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;django.contrib.auth&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;django.contrib.contenttypes&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;django.contrib.sessions&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;django.contrib.messages&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;django.contrib.staticfiles&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;blog&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="c1"&gt;# Add your app name here
&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Save the &lt;code&gt;settings.py&lt;/code&gt; file.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You're now ready to start building your Django app!&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Now run &lt;code&gt;python manage.py migrate&lt;/code&gt; command to apply any pending database migrations to the database schema.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Now let's understand Django App file structure
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;project_name/
├── app_name/
│   ├── __init__.py
│   ├── admin.py
│   ├── apps.py
│   ├── models.py
│   ├── tests.py
│   └── views.py
├── project_name/
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
└── manage.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Let's break it down:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;code&gt;project_name/&lt;/code&gt; - This is the root directory of the Django project.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;app_name/&lt;/code&gt; - This is a directory that contains a single Django app. You can have multiple apps within a single Django project.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;__init__.py&lt;/code&gt; - This is an empty file that tells Python that this directory should be considered a Python package.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;admin.py&lt;/code&gt; - This file is used to register models with the Django admin site.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;apps.py&lt;/code&gt; - This file is used to configure the Django app.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;models.py&lt;/code&gt; - This file contains the database models for the Django app.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;tests.py&lt;/code&gt; - This file contains the test cases for the Django app.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;views.py&lt;/code&gt; - This file contains the view functions for the Django app.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;settings.py&lt;/code&gt; - This file contains the settings for the Django - project, such as database configuration and installed apps.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;urls.py&lt;/code&gt; - This file contains the URL routing configuration for the Django project.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;wsgi.py&lt;/code&gt; - This file is used for deployment to WSGI-compatible servers.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;manage.py&lt;/code&gt; - This file is used to run management commands for the Django project.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Settings for static, media files
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Set up media and static file directories&lt;br&gt;
First, create two directories named "media" and "static" in your project directory to store your media and static files, respectively. To do this, simply create two folders in the root directory of your project.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Update the project settings file&lt;br&gt;
In your project settings file, add the following lines of code to specify the directories where your static and media files will be stored:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;MEDIA_ROOT&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;join&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;BASE_DIR&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;media&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;MEDIA_URL&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;/media/&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;

&lt;span class="n"&gt;STATIC_ROOT&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;join&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;BASE_DIR&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;static&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;STATIC_URL&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;/static/&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;


&lt;p&gt;Here, &lt;code&gt;MEDIA_ROOT&lt;/code&gt; and &lt;code&gt;STATIC_ROOT&lt;/code&gt; are the directories where Django will look for your media and static files, respectively. &lt;code&gt;MEDIA_URL&lt;/code&gt; and &lt;code&gt;STATIC_URL&lt;/code&gt; are the URLs that will be used to access your media and static files.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Update your project's URLs file&lt;br&gt;
In your project's &lt;code&gt;urls.py&lt;/code&gt; file, add the following code to serve the static and media files:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;django.contrib&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;admin&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;django.urls&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;include&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;django.conf&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;settings&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;django.conf.urls.static&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;static&lt;/span&gt;

&lt;span class="n"&gt;urlpatterns&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="nf"&gt;path&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;admin/&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;admin&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;site&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;urls&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;settings&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;DEBUG&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;urlpatterns&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="nf"&gt;static&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;settings&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;MEDIA_URL&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
&lt;span class="n"&gt;document_root&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;settings&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;MEDIA_ROOT&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;urlpatterns&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="nf"&gt;static&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;settings&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;STATIC_URL&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
&lt;span class="n"&gt;document_root&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;settings&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;STATIC_ROOT&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Here, &lt;code&gt;DEBUG&lt;/code&gt; is a Boolean value in your settings file that determines whether your application is running in debug mode or not. If it is set to &lt;code&gt;True&lt;/code&gt;, then the &lt;code&gt;static()&lt;/code&gt; and &lt;code&gt;media()&lt;/code&gt; functions will serve your media and static files, respectively.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Now, you can access your media and static files using the URLs you specified in the &lt;code&gt;MEDIA_URL&lt;/code&gt; and &lt;code&gt;STATIC_URL&lt;/code&gt; settings.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;After following above steps your django file structure should look something like this.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;project_name/
├── app_name/
│   ├── __init__.py
│   ├── admin.py
│   ├── apps.py
│   ├── models.py
│   ├── tests.py
│   ├── views.py
│   └── static/
├── project_name/
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   ├── wsgi.py
│   └── static/
└── manage.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  App and Project urls connection
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;In your app's directory, create a file named &lt;code&gt;urls.py&lt;/code&gt;. This file will contain all of the URLs for your app.&lt;/li&gt;
&lt;li&gt;In the &lt;code&gt;urls.py&lt;/code&gt; file of your app, import the Django &lt;code&gt;path&lt;/code&gt; function and any views that you want to associate with specific URLs.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;django.urls&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;path&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;.&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;views&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Define your app's URLs using the &lt;code&gt;path&lt;/code&gt; function. This function takes two arguments: the URL pattern and the view function that should handle the request.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;urlpatterns&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="nf"&gt;path&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;home/&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;views&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;home&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;home&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="nf"&gt;path&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;contact/&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;views&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;contact&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;contact&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In this example, we've defined two URLs for our app: /home/ and /contact/. The first argument of the path function specifies the URL pattern, and the second argument is the view function that should handle the request. We've also given each URL a name using the name argument. This is useful when generating URLs in templates or views.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In your project's main &lt;code&gt;urls.py&lt;/code&gt; file, import the &lt;code&gt;include&lt;/code&gt; function from Django's &lt;code&gt;urls&lt;/code&gt; module, as well as the &lt;code&gt;urls.py&lt;/code&gt; file of your app.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;django.urls&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;include&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;path&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;myapp&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;urls&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;myapp_urls&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here, we're assuming that our app is named &lt;code&gt;myapp&lt;/code&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In the &lt;code&gt;urlpatterns&lt;/code&gt; list of your project's &lt;code&gt;urls.py&lt;/code&gt; file, add a &lt;code&gt;path&lt;/code&gt; function for your app's URLs, using the &lt;code&gt;include&lt;/code&gt; function to include your app's &lt;code&gt;urls.py&lt;/code&gt; file.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;urlpatterns&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="nf"&gt;path&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;admin/&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;admin&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;site&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;urls&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="nf"&gt;path&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;''&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nf"&gt;include&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;myapp_urls&lt;/span&gt;&lt;span class="p"&gt;)),&lt;/span&gt;
&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In this example, we've added a &lt;code&gt;path&lt;/code&gt; function for our app's URLs using the &lt;code&gt;include&lt;/code&gt; function. The empty string &lt;code&gt;''&lt;/code&gt; specifies that our app's URLs should be included at the root URL of our project.&lt;/p&gt;

&lt;p&gt;Overall, this directory structure provides a clear separation of concerns between the project-level and app-level components of a Django application. Understanding this structure is key to building scalable and maintainable Django projects.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/l0Iyl55kTeh71nTXy/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/l0Iyl55kTeh71nTXy/giphy.gif"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>django</category>
      <category>python</category>
      <category>database</category>
    </item>
    <item>
      <title>How to send e-mail in django ?</title>
      <dc:creator>Yash Patel</dc:creator>
      <pubDate>Fri, 16 Apr 2021 16:43:08 +0000</pubDate>
      <link>https://forem.com/yashpatel_py/how-to-send-e-mail-in-django-37ge</link>
      <guid>https://forem.com/yashpatel_py/how-to-send-e-mail-in-django-37ge</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhwrsu93t38nas24cz66m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhwrsu93t38nas24cz66m.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
In django we can send e-mail using &lt;strong&gt;SMTP (Simple Mail Transfer Protocol)&lt;/strong&gt; service which is inbuilt package in python and also in django.&lt;/p&gt;
&lt;h3&gt;
  
  
  What is smtp ?
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;SMTP (Simple Mail Transfer Protocol)&lt;/em&gt;&lt;/strong&gt; is service that provides service to &lt;strong&gt;send, receive, and &lt;em&gt;or&lt;/em&gt; relay outgoing mail&lt;/strong&gt; between senders and receivers.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;SMTP service takes your client email address(you can also give multiple email address) which you are using and it is formatted as smtp.gmail.com because let's take and example Gmail’s SMTP server address is smtp.gmail.com, and Twilio Send Grids is smtp.sendgrid.com. You can generally find your SMTP server address in the account or settings section of your mail client.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;h3&gt;
  
  
  Django email sending setup
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Step 1&lt;/strong&gt; --&amp;gt; create one folder and name it as django_email&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2&lt;/strong&gt; --&amp;gt; Create django project using below command &lt;br&gt;
&lt;code&gt;django-admin startproject emails .&lt;/code&gt;&lt;br&gt;
Directory preview&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffb7azscwy42z2kiii72u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffb7azscwy42z2kiii72u.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3&lt;/strong&gt; --&amp;gt; Create django app in project created from above step and use command &lt;code&gt;python manage.py startapp main&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Directory preview&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frpdc4bnrbm99n0y08b5f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frpdc4bnrbm99n0y08b5f.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4&lt;/strong&gt; --&amp;gt; Now install app in settings.py and this file will be in emails folder&lt;br&gt;
Directory preview&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0i2ez1q3qtjvbl8k7jrw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0i2ez1q3qtjvbl8k7jrw.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 5&lt;/strong&gt; --&amp;gt; Now you need to migrate the project using command &lt;br&gt;
&lt;code&gt;python manage.py migrate&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 6&lt;/strong&gt; --&amp;gt; Go in &lt;em&gt;settings.py&lt;/em&gt; and go at the bottom and write code under static variable&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = 'gmail account email id'
EMAIL_HOST_PASSWORD = 'Your gmail password'
EMAIL_USE_TLS = True
EMAIL_PORT = 587
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here in variable &lt;code&gt;EMAIL_HOST_USER&lt;/code&gt; you need to write the email id which have &lt;strong&gt;two step verification off&lt;/strong&gt; because we need to make some settings change on your g-mail account. And In variable &lt;code&gt;EMAIL_HOST_PASSWORD&lt;/code&gt; you need you write your g-mail account password.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 7&lt;/strong&gt; --&amp;gt; Now open your favorite browser and follow below steps&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Go in option &lt;strong&gt;Account&lt;/strong&gt; &lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwb1zlvlsshycti863lnc.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwb1zlvlsshycti863lnc.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Go in option &lt;strong&gt;Security&lt;/strong&gt; and search for &lt;strong&gt;&lt;em&gt;Less secure app access&lt;/em&gt;&lt;/strong&gt; and turn that &lt;strong&gt;on&lt;/strong&gt; because if you will not turn that on then django will not able to send the mail.&lt;br&gt;
Directory preview&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj5mgl4lasbaccbrwxqiw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj5mgl4lasbaccbrwxqiw.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Step 8&lt;/strong&gt; --&amp;gt; Now create &lt;strong&gt;form.py&lt;/strong&gt; file in &lt;strong&gt;mail folder&lt;/strong&gt; and write code below code&lt;/p&gt;

&lt;p&gt;form.py&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;from django import forms

class ContactMeForm(forms.Form):
    first_name = forms.CharField(widget=forms.TextInput(attrs={'class':'form-control', 'placeholder':'Enter first name'}), required=True)
    last_name = forms.CharField(widget=forms.TextInput(attrs={'class':'form-control', 'placeholder':'Enter last name'}), required=True)
    emailid = forms.EmailField(widget=forms.TextInput(attrs={'class':'form-control', 'placeholder':'Enter email id'}), required=True)
    phone_number = forms.CharField(widget=forms.TextInput(attrs={'class':'form-control', 'placeholder':'Enter phone number'}))
    subject = forms.CharField(widget=forms.TextInput(attrs={'class':'form-control', 'placeholder':'Enter subject'}), required=True)
    message = forms.CharField(widget=forms.Textarea(attrs={'class':'form-control', 'placeholder':'Enter Message'}), required=True)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 9&lt;/strong&gt; --&amp;gt; Now go in views.py file and write below code&lt;/p&gt;

&lt;p&gt;views.py&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;from django.shortcuts import render
from main.form import ContactMeForm
from django.core.mail import send_mail, BadHeaderError
from django.http import HttpResponse
from django.contrib import messages

def home(request):
    form = ContactMeForm()

    if request.method == 'POST':
        form = ContactMeForm(request.POST)
        if form.is_valid():
            # form.save()
            # send_mail(subject, message[fname, lname, email, phonenumber, subject, message], sedner, recipient)

            subject = "Contact form inquiry"
            body = {
                'first_name': form.cleaned_data['first_name'],
                'last_name':form.cleaned_data['last_name'],
                'email': form.cleaned_data['emailid'],
                'phonenumber': form.cleaned_data['phone_number'],
                'subject': form.cleaned_data['subject'],
                'message': form.cleaned_data['message'],
            }

            message = '\n'.join(body.values())

            sender = form.cleaned_data['emailid']
            recipient = ['gameforyash@gmail.com']

            try:
                send_mail(subject, message, sender, recipient, fail_silently=True)

            except BadHeaderError:
                return HttpResponse("Invalid header found.")

            messages.success(request, "Your respoce has been submited successfully")
    context = {
        'form':form,
    }
    return render(request, "home/index.html", context)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 10&lt;/strong&gt; --&amp;gt; Now create urls.py file in main folder&lt;br&gt;
Directory preview&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftftgm14a34uyq3s5c4ql.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftftgm14a34uyq3s5c4ql.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 11&lt;/strong&gt; --&amp;gt; Open &lt;strong&gt;urls.py&lt;/strong&gt; created in main folder and write below code&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;from django.urls import path
from main import views

urlpatterns = [
    path('', views.home, name="home"),
]

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 12&lt;/strong&gt; --&amp;gt; Now register &lt;strong&gt;urls.py&lt;/strong&gt; created in main folder to &lt;strong&gt;emails&amp;gt;url.py&lt;/strong&gt; as shown below&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('main.urls'))
]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 13&lt;/strong&gt; --&amp;gt; Now create templates folder in main folder and create home folder in templates folder and create index.html in home folder&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SOME THING LIKE THIS &lt;code&gt;main&amp;gt;templates&amp;gt;home&amp;gt;index.html&lt;/code&gt;&lt;/strong&gt;&lt;br&gt;
Directory preview&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuea7eczepocalh8kl03u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuea7eczepocalh8kl03u.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 14&lt;/strong&gt; --&amp;gt; Open &lt;strong&gt;index.html&lt;/strong&gt; and write below code&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html lang="en"&amp;gt;

    &amp;lt;head&amp;gt;
        &amp;lt;meta charset="UTF-8"&amp;gt;
        &amp;lt;meta http-equiv="X-UA-Compatible" content="IE=edge"&amp;gt;
        &amp;lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&amp;gt;
        &amp;lt;title&amp;gt;Document&amp;lt;/title&amp;gt;
        &amp;lt;link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta3/dist/css/bootstrap.min.css" rel="stylesheet"
            integrity="sha384-eOJMYsd53ii+scO/bJGFsiCZc+5NDVN2yr8+0RDqr0Ql0h+rP48ckxlpbzKgwra6" crossorigin="anonymous"&amp;gt;
        &amp;lt;style&amp;gt;
            .marg {
                margin: 20%;
            }
        &amp;lt;/style&amp;gt;
    &amp;lt;/head&amp;gt;

    &amp;lt;body&amp;gt;
        &amp;lt;dev class="marg"&amp;gt;
            &amp;lt;form class="form-contact contact_form container" action="{% url 'home' %}" method="post" id="contactForm"
                novalidate="novalidate"&amp;gt;
                &amp;lt;h1&amp;gt;Contact us form&amp;lt;/h1&amp;gt;
                {% csrf_token %}
                &amp;lt;div class="row"&amp;gt;
                    &amp;lt;div class="col-sm-6"&amp;gt;
                        &amp;lt;div class="form-group"&amp;gt;
                            &amp;lt;label for="first_name"&amp;gt;Enter first name&amp;lt;/label&amp;gt;
                            {{ form.first_name }}
                        &amp;lt;/div&amp;gt;
                    &amp;lt;/div&amp;gt;

                    &amp;lt;div class="col-sm-6"&amp;gt;
                        &amp;lt;div class="form-group"&amp;gt;
                            &amp;lt;label for="last_name"&amp;gt;Enter last name&amp;lt;/label&amp;gt;
                            {{ form.last_name }}
                        &amp;lt;/div&amp;gt;
                    &amp;lt;/div&amp;gt;

                    &amp;lt;div class="col-6"&amp;gt;
                        &amp;lt;div class="form-group"&amp;gt;
                            &amp;lt;label for="email"&amp;gt;Enter Email id&amp;lt;/label&amp;gt;
                            {{ form.emailid }}
                        &amp;lt;/div&amp;gt;
                    &amp;lt;/div&amp;gt;

                    &amp;lt;div class="col-6"&amp;gt;
                        &amp;lt;div class="form-group"&amp;gt;
                            &amp;lt;label for="phone_number"&amp;gt;Enter phone number&amp;lt;/label&amp;gt;
                            {{form.phone_number}}
                        &amp;lt;/div&amp;gt;
                    &amp;lt;/div&amp;gt;

                    &amp;lt;div class="col-12"&amp;gt;
                        &amp;lt;div class="form-group"&amp;gt;
                            &amp;lt;label for="subject"&amp;gt;Subject&amp;lt;/label&amp;gt;
                            {{form.subject}}
                        &amp;lt;/div&amp;gt;
                    &amp;lt;/div&amp;gt;

                    &amp;lt;div class="col-12"&amp;gt;
                        &amp;lt;div class="form-group"&amp;gt;
                            &amp;lt;label for="Message"&amp;gt;Enter Message&amp;lt;/label&amp;gt;
                            {{form.message}}
                        &amp;lt;/div&amp;gt;
                    &amp;lt;/div&amp;gt;
                &amp;lt;/div&amp;gt;
                &amp;lt;div class="form-group mt-lg-3"&amp;gt;
                    &amp;lt;button type="submit" class="btn btn-outline-success"&amp;gt;Send Message&amp;lt;/button&amp;gt;
                &amp;lt;/div&amp;gt;
            &amp;lt;/form&amp;gt;
        &amp;lt;/dev&amp;gt;

        &amp;lt;script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta3/dist/js/bootstrap.bundle.min.js"
            integrity="sha384-JEW9xMcG8R+pH31jmWH6WWP0WintQrMb4s7ZOdauHnUtxwoG2vI5DkLtS3qm9Ekf"
            crossorigin="anonymous"&amp;gt;&amp;lt;/script&amp;gt;
    &amp;lt;/body&amp;gt;

&amp;lt;/html&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 15&lt;/strong&gt; --&amp;gt; Now start your django server using command &lt;code&gt;python manage.py runserver&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;**Step 16 --&amp;gt; Fill the data and click on submit button and see your mail mail box you must see mail&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh6xf40629fy1g80qzrar.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh6xf40629fy1g80qzrar.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;mail received&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy53j97pyprmn1vuzrk6b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy53j97pyprmn1vuzrk6b.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;If you like this shot django mail sending tutorial then please like this blog and if you have any doubts the let me know in discussion box&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>django</category>
      <category>python</category>
    </item>
  </channel>
</rss>
