{"id":84664,"date":"2021-09-09T09:00:23","date_gmt":"2021-09-09T03:30:23","guid":{"rendered":"https:\/\/techvidvan.com\/tutorials\/?p=84664"},"modified":"2026-06-03T15:28:24","modified_gmt":"2026-06-03T09:58:24","slug":"python-blood-donation","status":"publish","type":"post","link":"https:\/\/techvidvan.com\/tutorials\/python-blood-donation\/","title":{"rendered":"Online Blood Donation System Project in Python Django"},"content":{"rendered":"<p>Blood Donation is important for people in urgent need of it which can save millions of patients. Hence blood donation management system is very much important. Here we will develop Blood Donation system using Python in easy steps.<\/p>\n<h3>About the Blood Donation Management System:<\/h3>\n<p>The patients in need of the blood are able to request for the blood. Users can register themselves to become a donor. All users are also able to see all the donors list according to different blood groups as well as the list of all the requested blood by different users or patients. The patients in need of the blood can contact the available donors of the same blood group and city. This will help a lot of people who are in need of blood.<\/p>\n<h3>Django Blood Donation Management System<\/h3>\n<p>The main objective of this project is to create a platform where the people or patients in need of the blood can easily find a donor of the same blood group. This connects the donors and the recipients.<\/p>\n<h3>Project Prerequisites:<\/h3>\n<p>You must know the following languages required for this project:<\/p>\n<p>1. HTML<\/p>\n<p>2. CSS<\/p>\n<p>3. Bootstrap<\/p>\n<p>4. Python Django Framework<\/p>\n<h3>Download Python Blood Donation System Project<\/h3>\n<p>Please download the source code of python blood donation system: <a href=\"https:\/\/drive.google.com\/file\/d\/1y7oYShr9TVyaOvOFML4qCMTvS5FuyET_\/view?usp=drive_link\"><strong>Online Blood Donation System Project Code<\/strong><\/a><\/p>\n<h3>Models.py :<\/h3>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">from django.db import models\r\nfrom django.contrib.auth.models import User\r\n \r\nclass BloodGroup(models.Model):\r\n    name = models.CharField(max_length=5)\r\n \r\n    def __str__(self):\r\n        return self.name\r\n \r\nclass RequestBlood(models.Model):\r\n    name = models.CharField(max_length=100)\r\n    email = models.EmailField()\r\n    phone = models.CharField(max_length=20)\r\n    state = models.CharField(max_length=200, blank=True)\r\n    city = models.CharField(max_length=300, blank=True)\r\n    address = models.CharField(max_length=500, blank=True)\r\n    blood_group = models.ForeignKey(BloodGroup, on_delete=models.CASCADE)\r\n    date = models.CharField(max_length=100, blank=True)\r\n \r\n    def __str__(self):\r\n        return self.name\r\n \r\nclass Donor(models.Model):\r\n    donor = models.OneToOneField(User, on_delete=models.CASCADE, blank=True, null=True)\r\n    date_of_birth = models.CharField(max_length=100)\r\n    phone = models.CharField(max_length=10)\r\n    city = models.CharField(max_length=100)\r\n    state = models.CharField(max_length=100)\r\n    address = models.TextField(max_length=500, default=\"\")\r\n    blood_group = models.ForeignKey(BloodGroup, on_delete=models.CASCADE)\r\n    gender = models.CharField(max_length=10)\r\n    image = models.ImageField(upload_to=\"\")\r\n    ready_to_donate = models.BooleanField(default=True)\r\n \r\n    def __str__(self):\r\n        return str(self.blood_group)<\/pre>\n<p><strong>Code Explanation:<\/strong><br \/>\n<strong>Blood Group model:<\/strong><br \/>\nIt saves the name of all the blood groups.<br \/>\n<strong>Request Blood model:<\/strong><br \/>\nWhen a user or patient requests for blood by filling the required form, all the data is stored in this model.<br \/>\n<strong>Donor model:<\/strong><br \/>\nWhen a new donor registers, all the data is stored in this model.<\/p>\n<h3>Urls.py :<\/h3>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">urlpatterns = [\r\n    path(\"\", views.index, name=\"index\"),\r\n    path(\"donors_list\/&lt;int:myid&gt;\/\", views.donors_list, name=\"donors_list\"),\r\n    path(\"donors_details\/&lt;int:myid&gt;\/\", views.donors_details, name=\"donors_details\"),\r\n    path(\"request_blood\/\", views.request_blood, name=\"request_blood\"),\r\n    path(\"see_all_request\/\", views.see_all_request, name=\"see_all_request\"),\r\n    path(\"become_donor\/\", views.become_donor, name=\"become_donor\"),\r\n    path(\"login\/\", views.Login, name=\"login\"),\r\n    path(\"logout\/\", views.Logout, name=\"logout\"),\r\n    path('profile\/', views.profile, name='profile'),\r\n    path('edit_profile\/', views.edit_profile, name='edit_profile'),\r\n    path('change_status\/', views.change_status, name='change_status'),\r\n]\r\n<\/pre>\n<p><strong>Code Explanation:<\/strong><\/p>\n<p>Above code consists of all the urls used in the Python Blood Donation project.<\/p>\n<h3>1. Home Page (index.html):<\/h3>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">&lt;div class=\"container\"&gt;\r\n&lt;h1&gt;Available Donors According To Blood Group&lt;\/h1&gt;\r\n  &lt;div class=\"album py-5 bg-light\"&gt;\r\n    &lt;div class=\"container\"&gt;\r\n      &lt;div class=\"row\"&gt;\r\n        {% for i in all_group %}\r\n        &lt;div class=\"col-md-4\"&gt;\r\n          &lt;div class=\"card mb-4 shadow-sm border-danger\"&gt;\r\n            &lt;div class=\"card-body\"&gt;\r\n              &lt;h3 class=\"card-text\"&gt;Blood Group: {{i.name}}&lt;\/h3&gt;\r\n              &lt;h3 class=\"card-text\"&gt;Total Donor: {{i.total}}&lt;\/h3&gt;\r\n              &lt;div class=\"d-flex justify-content-between align-items-center\"&gt;\r\n                &lt;div class=\"btn-group\"&gt;\r\n                  &lt;a href=\"\/donors_list\/{{i.id}}\/\" class=\"btn btn-sm btn-outline-danger\"&gt;View All Donors&lt;\/a&gt;\r\n                &lt;\/div&gt;\r\n              &lt;\/div&gt;\r\n            &lt;\/div&gt;\r\n          &lt;\/div&gt;\r\n        &lt;\/div&gt;\r\n        {% endfor %}\r\n      &lt;\/div&gt;\r\n    &lt;\/div&gt;\r\n  &lt;\/div&gt;\r\n&lt;\/div&gt;\r\n<\/pre>\n<p><strong>Views.py :<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">def index(request):\r\n    all_group = BloodGroup.objects.annotate(total=Count('donor'))\r\n    return render(request, \"index.html\", {'all_group':all_group})\r\n<\/pre>\n<p><strong>Code Explanation:<\/strong><br \/>\nOn the home page there are bootstrap cards for each blood group with their total numbers. All the users can see the available donors for each blood group. Then the users can also see the details of all donors.<\/p>\n<h3>2. Request For Blood (request_blood.html):<\/h3>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">&lt;div class=\"container\"&gt;\r\n    &lt;h3&gt;&lt;i style=\"font-weight: bold;    \"&gt;Request For Blood&lt;\/i&gt;&lt;\/h3&gt;\r\n    &lt;form method=\"POST\"&gt; {% csrf_token %}\r\n&lt;div class=\"row mt-4\"&gt;\r\n    &lt;div class=\"form-group col-md-12\"&gt;\r\n        &lt;label&gt;&lt;i style=\"font-weight: bold;\"&gt;Full Name&lt;\/i&gt;&lt;\/label&gt;\r\n        &lt;input type=\"text\" class=\"form-control\" name=\"name\" id=\"name\" placeholder=\"Enter Name\" required&gt;\r\n    &lt;\/div&gt;\r\n&lt;\/div&gt;\r\n \r\n&lt;div class=\"row mt-1\"&gt;\r\n    &lt;div class=\"form-group col-md-6\"&gt;\r\n        &lt;label&gt;&lt;i style=\"font-weight: bold;\"&gt;Email ID&lt;\/i&gt;&lt;\/label&gt;\r\n        &lt;input type=\"email\" class=\"form-control\" name=\"email\" id=\"email\" placeholder=\"Enter Email ID\" required&gt;\r\n    &lt;\/div&gt;\r\n    &lt;div class=\"form-group col-md-6\"&gt;\r\n        &lt;label&gt;&lt;i style=\"font-weight: bold;\"&gt;Contact Number&lt;\/i&gt;&lt;\/label&gt;\r\n        &lt;input type=\"tel\" class=\"form-control\" name=\"phone\" id=\"phone\" placeholder=\"Enter Contact Number\" required&gt;\r\n    &lt;\/div&gt;\r\n&lt;\/div&gt;\r\n \r\n&lt;div class=\"row mt-1\"&gt;\r\n    &lt;div class=\"form-group col-md-6\"&gt;\r\n        &lt;label&gt;&lt;i style=\"font-weight: bold;\"&gt;State&lt;\/i&gt;&lt;\/label&gt;\r\n        &lt;input type=\"text\" class=\"form-control\" name=\"state\" id=\"state\" placeholder=\"Enter State\" required&gt;\r\n    &lt;\/div&gt;\r\n    &lt;div class=\"form-group col-md-6\"&gt;\r\n        &lt;label&gt;&lt;i style=\"font-weight: bold;\"&gt;City&lt;\/i&gt;&lt;\/label&gt;\r\n        &lt;input type=\"text\" class=\"form-control\" name=\"city\" id=\"city\" placeholder=\"Enter City\" required&gt;\r\n    &lt;\/div&gt;\r\n&lt;\/div&gt;\r\n \r\n&lt;div class=\"row mt-1\"&gt;\r\n    &lt;div class=\"form-group col-md-12\"&gt;\r\n        &lt;label&gt;&lt;i style=\"font-weight: bold;\"&gt;Address&lt;\/i&gt;&lt;\/label&gt;\r\n        &lt;textarea class=\"form-control\" id=\"address\" name=\"address\" rows=\"3\" placeholder=\"Enter Address\" required&gt;&lt;\/textarea&gt;\r\n    &lt;\/div&gt;\r\n&lt;\/div&gt;\r\n \r\n&lt;div class=\"row mt-1\"&gt;\r\n    &lt;div class=\"form-group col-md-6\"&gt;\r\n        &lt;label&gt;&lt;i style=\"font-weight: bold;\"&gt;Blood Group&lt;\/i&gt;&lt;\/label&gt;\r\n        &lt;select class=\"form-control\" name=\"blood_group\" required&gt;\r\n            &lt;option&gt;A+&lt;\/option&gt;\r\n            &lt;option&gt;A-&lt;\/option&gt;\r\n            &lt;option&gt;B+&lt;\/option&gt;\r\n            &lt;option&gt;B-&lt;\/option&gt;\r\n            &lt;option&gt;O+&lt;\/option&gt;\r\n            &lt;option&gt;O-&lt;\/option&gt;\r\n            &lt;option&gt;AB+&lt;\/option&gt;\r\n            &lt;option&gt;AB-&lt;\/option&gt;\r\n            &lt;\/select&gt;\r\n    &lt;\/div&gt;\r\n        &lt;div class=\"form-group col-md-6\"&gt;\r\n            &lt;label&gt;&lt;i style=\"font-weight: bold;\"&gt;Date Of Donation&lt;\/i&gt;&lt;\/label&gt;\r\n            &lt;input type=\"date\" class=\"form-control\" id=\"date\" name=\"date\" required&gt;\r\n        &lt;\/div&gt;\r\n&lt;\/div&gt;\r\n&lt;button type=\"submit\" class=\"btn btn-primary\"&gt;Submit&lt;\/button&gt;\r\n&lt;\/form&gt;\r\n&lt;\/div&gt;\r\n<\/pre>\n<p><strong>Views.py :<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">def request_blood(request):\r\n    if request.method == \"POST\":\r\n        name = request.POST['name']\r\n        email = request.POST['email']\r\n        phone = request.POST['phone']\r\n        state = request.POST['state']\r\n        city = request.POST['city']\r\n        address = request.POST['address']\r\n        blood_group = request.POST['blood_group']\r\n        date = request.POST['date']\r\n        blood_requests = RequestBlood.objects.create(name=name, email=email, phone=phone, state=state, city=city, address=address, blood_group=BloodGroup.objects.get(name=blood_group), date=date)\r\n        blood_requests.save()\r\n        return render(request, \"index.html\")\r\n    return render(request, \"request_blood.html\")\r\n<\/pre>\n<p><strong>Code Explanation:<\/strong><br \/>\nAnyone in need of blood can make a request for blood. All the blood requests will be visible to everyone. If any donor wants to help any person who has made a request, then the donor can contact the person.<\/p>\n<h3>3. All Blood Requests (see_all_request.html):<\/h3>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">&lt;div class=\"container\"&gt;\r\n{% if requests %}\r\n&lt;h3 class=\"text-center\"&gt;All Blood Requests&lt;\/h3&gt;\r\n&lt;br&gt;\r\n&lt;table class=\"table table-sm table-bordered\"&gt;\r\n  &lt;tr class=\"table-danger\"&gt;\r\n    &lt;th&gt;Name&lt;\/th&gt;\r\n    &lt;th&gt;Phone&lt;\/th&gt;\r\n    &lt;th&gt;Email&lt;\/th&gt;\r\n    &lt;th&gt;Blood Group&lt;\/th&gt;\r\n    &lt;th&gt;Donation Date&lt;\/th&gt;\r\n    &lt;th&gt;State | City&lt;\/th&gt;\r\n  &lt;\/tr&gt;\r\n  {% for i in requests %}\r\n    &lt;tr&gt;\r\n      &lt;td&gt;{{i.name}}&lt;\/td&gt;\r\n      &lt;td&gt;{{i.phone}}&lt;\/td&gt;\r\n      &lt;td&gt;{{i.email}}&lt;\/td&gt;\r\n      &lt;td&gt;{{i.blood_group}}&lt;\/td&gt;\r\n      &lt;td&gt;{{i.date}}&lt;\/td&gt;\r\n      &lt;td&gt;{{i.state}} | {{i.city}}&lt;\/td&gt;\r\n    &lt;\/tr&gt;\r\n  {% endfor %}\r\n&lt;\/table&gt;\r\n{% else %}\r\n&lt;h2&gt;No Blood Request Available&lt;\/h2&gt;\r\n{% endif %}\r\n&lt;\/div&gt;\r\n<\/pre>\n<p><strong>Views.py :<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">def see_all_request(request):\r\n    requests = RequestBlood.objects.all()\r\n    return render(request, \"see_all_request.html\", {'requests':requests})\r\n<\/pre>\n<p><strong>Code Explanation:<\/strong><br \/>\nBy clicking on see all requests on the navigation bar, the user can see the entire list of blood requests. Donors can contact the person in need of the blood if they want to help that person.<\/p>\n<h3>4. Become a Donor (become_donor.html):<\/h3>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">&lt;div class=\"container\"&gt;\r\n    &lt;form method=\"POST\" enctype=\"multipart\/form-data\"&gt; {% csrf_token %}\r\n&lt;div class=\"row mt-1\"&gt;\r\n    &lt;div class=\"form-group col-md-12\"&gt;\r\n        &lt;label&gt;&lt;i style=\"font-weight: bold;\"&gt;Username&lt;\/i&gt;&lt;\/label&gt;\r\n        &lt;input type=\"text\" class=\"form-control\" name=\"username\" id=\"username\" placeholder=\"Enter Username\" required&gt;\r\n    &lt;\/div&gt;\r\n&lt;\/div&gt;\r\n \r\n&lt;div class=\"row mt-1\"&gt;\r\n    &lt;div class=\"form-group col-md-6\"&gt;\r\n        &lt;label&gt;&lt;i style=\"font-weight: bold;\"&gt;First Name&lt;\/i&gt;&lt;\/label&gt;\r\n        &lt;input type=\"text\" class=\"form-control\" name=\"first_name\" id=\"first_name\" placeholder=\"Enter First Name\" required&gt;\r\n    &lt;\/div&gt;\r\n    &lt;div class=\"form-group col-md-6\"&gt;\r\n        &lt;label&gt;&lt;i style=\"font-weight: bold;\"&gt;Last Name&lt;\/i&gt;&lt;\/label&gt;\r\n        &lt;input type=\"text\" class=\"form-control\" name=\"last_name\" id=\"last_name\" placeholder=\"Enter Last Name\" required&gt;\r\n    &lt;\/div&gt;\r\n&lt;\/div&gt;\r\n \r\n&lt;div class=\"row mt-1\"&gt;\r\n    &lt;div class=\"form-group col-md-6\"&gt;\r\n        &lt;label&gt;&lt;i style=\"font-weight: bold;\"&gt;Email ID&lt;\/i&gt;&lt;\/label&gt;\r\n        &lt;input type=\"email\" class=\"form-control\" name=\"email\" id=\"email\" placeholder=\"Enter Email ID\" required&gt;\r\n    &lt;\/div&gt;\r\n    &lt;div class=\"form-group col-md-6\"&gt;\r\n        &lt;label&gt;&lt;i style=\"font-weight: bold;\"&gt;Contact Number&lt;\/i&gt;&lt;\/label&gt;\r\n        &lt;input type=\"tel\" class=\"form-control\" name=\"phone\" id=\"phone\" placeholder=\"Enter Contact Number\" required&gt;\r\n    &lt;\/div&gt;\r\n&lt;\/div&gt;\r\n \r\n&lt;div class=\"row mt-1\"&gt;\r\n    &lt;div class=\"form-group col-md-6\"&gt;\r\n        &lt;label&gt;&lt;i style=\"font-weight: bold;\"&gt;State&lt;\/i&gt;&lt;\/label&gt;\r\n        &lt;input type=\"text\" class=\"form-control\" name=\"state\" id=\"state\" placeholder=\"Enter State\" required&gt;\r\n    &lt;\/div&gt;\r\n    &lt;div class=\"form-group col-md-6\"&gt;\r\n        &lt;label&gt;&lt;i style=\"font-weight: bold;\"&gt;City&lt;\/i&gt;&lt;\/label&gt;\r\n        &lt;input type=\"text\" class=\"form-control\" name=\"city\" id=\"city\" placeholder=\"Enter City\" required&gt;\r\n    &lt;\/div&gt;\r\n&lt;\/div&gt;\r\n \r\n&lt;div class=\"row mt-1\"&gt;\r\n    &lt;div class=\"form-group col-md-12\"&gt;\r\n        &lt;label&gt;&lt;i style=\"font-weight: bold;\"&gt;Address&lt;\/i&gt;&lt;\/label&gt;\r\n        &lt;textarea class=\"form-control\" id=\"address\" name=\"address\" rows=\"3\" placeholder=\"Enter Address\" required&gt;&lt;\/textarea&gt;\r\n    &lt;\/div&gt;\r\n&lt;\/div&gt;\r\n \r\n&lt;div class=\"row mt-2\"&gt;\r\n&lt;div class=\"form-group col-md-6\"&gt;\r\n    &lt;label&gt;&lt;i style=\"font-weight: bold;\"&gt;Gender&lt;\/i&gt;&lt;\/label&gt;\r\n&lt;div style=\"border: 1px solid lightgrey; padding: 5px; border-radius: 6px;\"&gt;\r\n&lt;div class=\"form-check form-check-inline\"&gt;\r\n    &lt;input class=\"form-check-input\" type=\"radio\" name=\"gender\" id=\"male\" value=\"Male\"&gt;\r\n    &lt;label class=\"form-check-label\"&gt;Male&lt;\/label&gt;\r\n  &lt;\/div&gt;\r\n  &lt;div class=\"form-check form-check-inline\"&gt;\r\n    &lt;input class=\"form-check-input\" type=\"radio\" name=\"gender\" id=\"female\" value=\"Female\"&gt;\r\n    &lt;label class=\"form-check-label\"&gt;Female&lt;\/label&gt;\r\n  &lt;\/div&gt;\r\n  &lt;\/div&gt;\r\n  &lt;\/div&gt;\r\n    &lt;div class=\"form-group col-md-6\"&gt;\r\n        &lt;label&gt;&lt;i style=\"font-weight: bold;\"&gt;Blood Group&lt;\/i&gt;&lt;\/label&gt;\r\n        &lt;select class=\"form-control\" name=\"blood_group\" required&gt;\r\n            &lt;option&gt;A+&lt;\/option&gt;\r\n            &lt;option&gt;A-&lt;\/option&gt;\r\n            &lt;option&gt;B+&lt;\/option&gt;\r\n            &lt;option&gt;B-&lt;\/option&gt;\r\n            &lt;option&gt;O+&lt;\/option&gt;\r\n            &lt;option&gt;O-&lt;\/option&gt;\r\n            &lt;option&gt;AB+&lt;\/option&gt;\r\n            &lt;option&gt;AB-&lt;\/option&gt;\r\n            &lt;\/select&gt;\r\n    &lt;\/div&gt;\r\n&lt;\/div&gt;\r\n \r\n&lt;div class=\"row mt-1\"&gt;\r\n    &lt;div class=\"form-group col-md-6\"&gt;\r\n        &lt;label&gt;&lt;i style=\"font-weight: bold;\"&gt;Profile Photo&lt;\/i&gt;&lt;\/label&gt;\r\n        &lt;input type=\"file\" class=\"form-control\" id=\"image\" name=\"image\" required&gt;\r\n    &lt;\/div&gt;\r\n    &lt;div class=\"form-group col-md-6\"&gt;\r\n        &lt;label&gt;&lt;i style=\"font-weight: bold;\"&gt;Date Of Birth&lt;\/i&gt;&lt;\/label&gt;\r\n        &lt;input type=\"date\" class=\"form-control\" id=\"date\" name=\"date\" required&gt;\r\n    &lt;\/div&gt;\r\n&lt;\/div&gt;\r\n \r\n&lt;div class=\"row mt-1\"&gt;\r\n    &lt;div class=\"form-group col-md-6\"&gt;\r\n        &lt;label&gt;&lt;i style=\"font-weight: bold;\"&gt;Password&lt;\/i&gt;&lt;\/label&gt;\r\n        &lt;input type=\"password\" class=\"form-control\" name=\"password\" id=\"password\" placeholder=\"Enter Password\" required&gt;\r\n    &lt;\/div&gt;\r\n    &lt;div class=\"form-group col-md-6\"&gt;\r\n        &lt;label&gt;&lt;i style=\"font-weight: bold;\"&gt;Confirm Password&lt;\/i&gt;&lt;\/label&gt;\r\n        &lt;input type=\"password\" class=\"form-control\" name=\"confirm_password\" id=\"confirm_password\" placeholder=\"Confirm Password\" required&gt;\r\n    &lt;\/div&gt;\r\n&lt;\/div&gt;\r\n \r\n&lt;button type=\"submit\" class=\"btn btn-primary\"&gt;Submit&lt;\/button&gt;\r\n&lt;\/form&gt;\r\n&lt;\/div&gt;\r\n<\/pre>\n<p><strong>Views.py :<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">def become_donor(request):\r\n    if request.method==\"POST\":   \r\n        username = request.POST['username']\r\n        first_name = request.POST['first_name']\r\n        last_name = request.POST['last_name']\r\n        email = request.POST['email']\r\n        phone = request.POST['phone']\r\n        state = request.POST['state']\r\n        city = request.POST['city']\r\n        address = request.POST['address']\r\n        gender = request.POST['gender']\r\n        blood_group = request.POST['blood_group']\r\n        date = request.POST['date']\r\n        image = request.FILES['image']\r\n        password = request.POST['password']\r\n        confirm_password = request.POST['confirm_password']\r\n \r\n        if password != confirm_password:\r\n            messages.error(request, \"Passwords do not match.\")\r\n            return redirect('\/signup')\r\n \r\n        user = User.objects.create_user(username=username, email=email, first_name=first_name, last_name=last_name, password=password)\r\n        donors = Donor.objects.create(donor=user, phone=phone, state=state, city=city, address=address, gender=gender, blood_group=BloodGroup.objects.get(name=blood_group), date_of_birth=date, image=image)\r\n        user.save()\r\n        donors.save()\r\n        return render(request, \"index.html\")\r\n    return render(request, \"become_donor.html\")\r\n<\/pre>\n<p><strong>Code Explanation:<\/strong><br \/>\nAll users can register themselves as donors by filling the form by clicking on register as donor option on the navigation bar. After registering themselves as a donor they can check their profile and are able to edit the profile. The donors can update the status of whether they are ready to donate blood or not.<\/p>\n<h3>5. Login (login.html):<\/h3>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">&lt;form method=\"POST\"&gt; {% csrf_token %}\r\n    &lt;div class=\"container mt-5\"&gt;\r\n        &lt;div class=\"mb-3\"&gt;\r\n            &lt;label for=\"username\" class=\"form-label\"&gt;&lt;i style=\"font-weight: bold;\"&gt;Username&lt;\/i&gt;&lt;\/label&gt;\r\n            &lt;input type=\"text\" class=\"form-control\" id=\"username\" name=\"username\" placeholder=\"Enter Username\"&gt;\r\n        &lt;\/div&gt;\r\n        &lt;div class=\"mb-3\"&gt;\r\n            &lt;label for=\"password\" class=\"form-label\"&gt;&lt;i style=\"font-weight: bold;\"&gt;Password&lt;\/i&gt;&lt;\/label&gt;\r\n            &lt;input type=\"password\" class=\"form-control\" id=\"password\" name=\"password\" placeholder=\"Enter Password\"&gt;\r\n        &lt;\/div&gt;\r\n        &lt;br&gt;\r\n        &lt;input type=\"submit\" value=\"Submit\" class=\"btn btn-primary\" style=\"color: white; font-size: larger; width: 8rem;\"&gt;\r\n    &lt;\/div&gt;\r\n&lt;\/form&gt;\r\n<\/pre>\n<p><strong>Views.py :<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">def Login(request):\r\n    if request.user.is_authenticated:\r\n        return redirect(\"\/\")\r\n    else:\r\n        if request.method == \"POST\":\r\n            username = request.POST['username']\r\n            password = request.POST['password']\r\n            user = authenticate(username=username, password=password)\r\n \r\n            if user is not None:\r\n                login(request, user)\r\n                return redirect(\"\/profile\")\r\n            else:\r\n                thank = True\r\n                return render(request, \"user_login.html\", {\"thank\":thank})\r\n    return render(request, \"login.html\")\r\n<\/pre>\n<p><strong>Code Explanation:<\/strong><br \/>\nAfter registering as a donor, the donors can login using the username and password.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">user = authenticate(username=username, password=password)\r\n<\/pre>\n<p>Using django\u2019s authenticate function, the donors can login.<\/p>\n<h3>6. Donor\u2019s Profile (profile.html):<\/h3>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">&lt;div class=\"container\"&gt;\r\n    &lt;div class=\"row\"&gt;\r\n        &lt;div class=\"col-md-4\"&gt;\r\n            &lt;div&gt;\r\n                &lt;img src=\"{{donor_profile.image.url}}\" alt=\"\" width=\"310px\" height=\"270px\"&gt;\r\n                &lt;br&gt;&lt;br&gt;&lt;br&gt;\r\n                {% if donor_profile.ready_to_donate %}\r\n                &lt;a href=\"\/change_status\/\" class=\"btn btn-success\" style=\"width: 15rem; font-size: 23px;\"&gt;I'm Ready To Donate&lt;\/a&gt;\r\n              {% else %}\r\n                &lt;a href=\"\/change_status\/\" class=\"btn btn-danger\" style=\"width: 15rem; font-size: 19px;\"&gt;I'm Not Ready To Donate&lt;\/a&gt;\r\n              {% endif %}\r\n            &lt;\/div&gt;\r\n        &lt;\/div&gt;\r\n        &lt;div class=\"col-md-8\"&gt;\r\n            &lt;div&gt;\r\n                &lt;div&gt;\r\n                    &lt;br&gt;\r\n                    &lt;div class=\"row mt-2\"&gt;\r\n                        &lt;div class=\"col-md-6\"&gt;\r\n                            &lt;h3&gt;Username:&lt;\/h3&gt;\r\n                        &lt;\/div&gt;\r\n                        &lt;div class=\"col-md-6\"&gt;\r\n                            &lt;h3&gt;{{user}}&lt;\/h3&gt;\r\n                        &lt;\/div&gt;\r\n                    &lt;\/div&gt;\r\n                    &lt;div class=\"row mt-2\"&gt;\r\n                        &lt;div class=\"col-md-6\"&gt;\r\n                            &lt;h3&gt;Full Name:&lt;\/h3&gt;\r\n                        &lt;\/div&gt;\r\n                        &lt;div class=\"col-md-6\"&gt;\r\n                            &lt;h3&gt;{{user.get_full_name}}&lt;\/h3&gt;\r\n                        &lt;\/div&gt;\r\n                    &lt;\/div&gt;\r\n                    &lt;div class=\"row mt-2\"&gt;\r\n                        &lt;div class=\"col-md-6\"&gt;\r\n                            &lt;h3&gt;Email:&lt;\/h3&gt;\r\n                        &lt;\/div&gt;\r\n                        &lt;div class=\"col-md-6\"&gt;\r\n                            &lt;h3&gt;{{user.email}}&lt;\/h3&gt;\r\n                        &lt;\/div&gt;\r\n                    &lt;\/div&gt;\r\n                    &lt;div class=\"row mt-2\"&gt;\r\n                        &lt;div class=\"col-md-6\"&gt;\r\n                            &lt;h3&gt;Phone Number:&lt;\/h3&gt;\r\n                        &lt;\/div&gt;\r\n                        &lt;div class=\"col-md-6\"&gt;\r\n                            &lt;h3&gt;{{donor_profile.phone}}&lt;\/h3&gt;\r\n                        &lt;\/div&gt;\r\n                    &lt;\/div&gt;\r\n                    &lt;div class=\"row mt-2\"&gt;\r\n                        &lt;div class=\"col-md-6\"&gt;\r\n                            &lt;h3&gt;Gender&lt;\/h3&gt;\r\n                        &lt;\/div&gt;\r\n                        &lt;div class=\"col-md-6\"&gt;\r\n                            &lt;h3&gt;{{donor_profile.gender}}&lt;\/h3&gt;\r\n                        &lt;\/div&gt;\r\n                    &lt;\/div&gt;\r\n                    &lt;div class=\"row mt-2\"&gt;\r\n                        &lt;div class=\"col-md-6\"&gt;\r\n                            &lt;h3&gt;Date of Birth:&lt;\/h3&gt;\r\n                        &lt;\/div&gt;\r\n                        &lt;div class=\"col-md-6\"&gt;\r\n                            &lt;h3&gt;{{donor_profile.date_of_birth}}&lt;\/h3&gt;\r\n                        &lt;\/div&gt;\r\n                    &lt;\/div&gt;\r\n                    &lt;div class=\"row mt-2\"&gt;\r\n                        &lt;div class=\"col-md-6\"&gt;\r\n                            &lt;h3&gt;State:&lt;\/h3&gt;\r\n                        &lt;\/div&gt;\r\n                        &lt;div class=\"col-md-6\"&gt;\r\n                            &lt;h3&gt;{{donor_profile.state}}&lt;\/h3&gt;\r\n                        &lt;\/div&gt;\r\n                    &lt;\/div&gt;\r\n                    &lt;div class=\"row mt-2\"&gt;\r\n                        &lt;div class=\"col-md-6\"&gt;\r\n                            &lt;h3&gt;City:&lt;\/h3&gt;\r\n                        &lt;\/div&gt;\r\n                        &lt;div class=\"col-md-6\"&gt;\r\n                            &lt;h3&gt;{{donor_profile.city}}&lt;\/h3&gt;\r\n                        &lt;\/div&gt;\r\n                    &lt;\/div&gt;\r\n                    &lt;div class=\"row mt-2\"&gt;\r\n                        &lt;div class=\"col-md-6\"&gt;\r\n                            &lt;h3&gt;Address:&lt;\/h3&gt;\r\n                        &lt;\/div&gt;\r\n                        &lt;div class=\"col-md-6\"&gt;\r\n                            &lt;h3&gt;{{donor_profile.address}}&lt;\/h3&gt;\r\n                        &lt;\/div&gt;\r\n                    &lt;\/div&gt;\r\n                    &lt;div class=\"row mt-2\"&gt;\r\n                        &lt;div class=\"col-md-6\"&gt;\r\n                            &lt;h3&gt;Blood Group:&lt;\/h3&gt;\r\n                        &lt;\/div&gt;\r\n                        &lt;div class=\"col-md-6\"&gt;\r\n                            &lt;h3&gt;{{donor_profile.blood_group}}&lt;\/h3&gt;\r\n                        &lt;\/div&gt;\r\n                    &lt;\/div&gt;\r\n                    &lt;div class=\"row mt-2\"&gt;\r\n                        &lt;div class=\"col-md-6\"&gt;\r\n                            &lt;h3&gt;Address:&lt;\/h3&gt;\r\n                        &lt;\/div&gt;\r\n                        &lt;div class=\"col-md-6\"&gt;\r\n                            &lt;h3&gt;{{donor_profile.address}}&lt;\/h3&gt;\r\n                        &lt;\/div&gt;\r\n                    &lt;\/div&gt;\r\n                &lt;\/div&gt;\r\n                &lt;a href=\"\/edit_profile\/\" class=\"btn btn-outline-danger mt-4\"&gt;Edit Profile&lt;\/a&gt;\r\n            &lt;\/div&gt;\r\n        &lt;\/div&gt;\r\n&lt;\/div&gt;\r\n&lt;\/div&gt;\r\n<\/pre>\n<p><strong>Views.py :<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">@login_required(login_url = '\/login')\r\ndef profile(request):\r\n    donor_profile = Donor.objects.get(donor=request.user)\r\n    return render(request, \"profile.html\", {'donor_profile':donor_profile})\r\n<\/pre>\n<p><strong>Code Explanation:<\/strong><br \/>\nAfter login, the donor\u2019s profile is shown to them. If they are not ready to donate blood then they can change the status from their profile that they are not ready for donating blood. Whenever a new donor registers, the default status is set to ready to donate blood in their profile.<\/p>\n<h3>7. Edit Profile (edit_profile.html):<\/h3>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">&lt;div class=\"container\"&gt;\r\n    &lt;form method=\"POST\" enctype=\"multipart\/form-data\"&gt; {% csrf_token %}\r\n&lt;div class=\"row mt-1\"&gt;\r\n    &lt;div class=\"form-group col-md-12\"&gt;\r\n        &lt;label&gt;&lt;i style=\"font-weight: bold;\"&gt;Username&lt;\/i&gt;&lt;\/label&gt;\r\n        &lt;input type=\"text\" class=\"form-control\" name=\"username\" id=\"username\" value=\"{{user}}\" readonly&gt;\r\n    &lt;\/div&gt;\r\n&lt;\/div&gt;\r\n \r\n&lt;div class=\"row mt-1\"&gt;\r\n    &lt;div class=\"form-group col-md-6\"&gt;\r\n        &lt;label&gt;&lt;i style=\"font-weight: bold;\"&gt;First Name&lt;\/i&gt;&lt;\/label&gt;\r\n        &lt;input type=\"text\" class=\"form-control\" name=\"first_name\" id=\"first_name\" value=\"{{request.user.first_name}}\" readonly&gt;\r\n    &lt;\/div&gt;\r\n    &lt;div class=\"form-group col-md-6\"&gt;\r\n        &lt;label&gt;&lt;i style=\"font-weight: bold;\"&gt;Last Name&lt;\/i&gt;&lt;\/label&gt;\r\n        &lt;input type=\"text\" class=\"form-control\" name=\"last_name\" id=\"last_name\" value=\"{{request.user.last_name}}\" readonly&gt;\r\n    &lt;\/div&gt;\r\n&lt;\/div&gt;\r\n \r\n&lt;div class=\"row mt-1\"&gt;\r\n    &lt;div class=\"form-group col-md-6\"&gt;\r\n        &lt;label&gt;&lt;i style=\"font-weight: bold;\"&gt;Email ID&lt;\/i&gt;&lt;\/label&gt;\r\n        &lt;input type=\"email\" class=\"form-control\" name=\"email\" id=\"email\" value=\"{{request.user.email}}\"&gt;\r\n    &lt;\/div&gt;\r\n    &lt;div class=\"form-group col-md-6\"&gt;\r\n        &lt;label&gt;&lt;i style=\"font-weight: bold;\"&gt;Contact Number&lt;\/i&gt;&lt;\/label&gt;\r\n        &lt;input type=\"tel\" class=\"form-control\" name=\"phone\" id=\"phone\" value=\"{{donor_profile.phone}}\"&gt;\r\n    &lt;\/div&gt;\r\n&lt;\/div&gt;\r\n \r\n&lt;div class=\"row mt-1\"&gt;\r\n    &lt;div class=\"form-group col-md-6\"&gt;\r\n        &lt;label&gt;&lt;i style=\"font-weight: bold;\"&gt;State&lt;\/i&gt;&lt;\/label&gt;\r\n        &lt;input type=\"text\" class=\"form-control\" name=\"state\" id=\"state\" value=\"{{donor_profile.state}}\"&gt;\r\n    &lt;\/div&gt;\r\n    &lt;div class=\"form-group col-md-6\"&gt;\r\n        &lt;label&gt;&lt;i style=\"font-weight: bold;\"&gt;City&lt;\/i&gt;&lt;\/label&gt;\r\n        &lt;input type=\"text\" class=\"form-control\" name=\"city\" id=\"city\" value=\"{{donor_profile.city}}\"&gt;\r\n    &lt;\/div&gt;\r\n&lt;\/div&gt;\r\n \r\n&lt;div class=\"row mt-1\"&gt;\r\n    &lt;div class=\"form-group col-md-12\"&gt;\r\n        &lt;label&gt;&lt;i style=\"font-weight: bold;\"&gt;Address&lt;\/i&gt;&lt;\/label&gt;\r\n        &lt;textarea class=\"form-control\" id=\"address\" name=\"address\" rows=\"3\"&gt;{{donor_profile.address}}&lt;\/textarea&gt;\r\n    &lt;\/div&gt;\r\n&lt;\/div&gt;\r\n \r\n&lt;div class=\"row mt-2\"&gt;\r\n&lt;div class=\"form-group col-md-6\"&gt;\r\n    &lt;label&gt;&lt;i style=\"font-weight: bold;\"&gt;Gender&lt;\/i&gt;&lt;\/label&gt;\r\n    &lt;input type=\"text\" class=\"form-control\" name=\"gender\" value=\"{{donor_profile.gender}}\" readonly&gt;\r\n  &lt;\/div&gt;\r\n    &lt;div class=\"form-group col-md-6\"&gt;\r\n        &lt;label&gt;&lt;i style=\"font-weight: bold;\"&gt;Blood Group&lt;\/i&gt;&lt;\/label&gt;\r\n        &lt;input type=\"text\" class=\"form-control\" name=\"blood_group\" value=\"{{donor_profile.blood_group}}\" readonly&gt;\r\n    &lt;\/div&gt;\r\n&lt;\/div&gt;\r\n \r\n&lt;div class=\"row mt-1\"&gt;\r\n    &lt;div class=\"form-group col-md-6\"&gt;\r\n        &lt;label&gt;&lt;i style=\"font-weight: bold;\"&gt;Profile Photo&lt;\/i&gt;&lt;a href=\"{{donor_profile.image.url}}\"&gt;Click here to view the current profile &lt;picture&gt;&lt;\/picture&gt;&lt;\/a&gt;&lt;\/label&gt;\r\n        &lt;input type=\"file\" class=\"form-control\" id=\"image\" name=\"image\"&gt;\r\n    &lt;\/div&gt;\r\n    &lt;div class=\"form-group col-md-6\"&gt;\r\n        &lt;label&gt;&lt;i style=\"font-weight: bold;\"&gt;Date Of Birth&lt;\/i&gt;&lt;\/label&gt;\r\n        &lt;input type=\"date\" class=\"form-control\" id=\"date\" name=\"date\" value=\"{{donor_profile.date_of_birth}}\" readonly&gt;\r\n    &lt;\/div&gt;\r\n&lt;\/div&gt;\r\n \r\n&lt;button type=\"submit\" class=\"btn btn-primary\"&gt;Update Profile&lt;\/button&gt;\r\n&lt;\/form&gt;\r\n&lt;\/div&gt;\r\n<\/pre>\n<p><strong>Views.py<\/strong> :<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">@login_required(login_url = '\/login')\r\ndef edit_profile(request):\r\n    donor_profile = Donor.objects.get(donor=request.user)\r\n    if request.method == \"POST\":\r\n        email = request.POST['email']\r\n        phone = request.POST['phone']\r\n        state = request.POST['state']\r\n        city = request.POST['city']\r\n        address = request.POST['address']\r\n \r\n        donor_profile.donor.email = email\r\n        donor_profile.phone = phone\r\n        donor_profile.state = state\r\n        donor_profile.city = city\r\n        donor_profile.address = address\r\n        donor_profile.save()\r\n        donor_profile.donor.save()\r\n \r\n        try:\r\n            image = request.FILES['image']\r\n            donor_profile.image = image\r\n            donor_profile.save()\r\n        except:\r\n            pass\r\n        alert = True\r\n        return render(request, \"edit_profile.html\", {'alert':alert})\r\n    return render(request, \"edit_profile.html\", {'donor_profile':donor_profile})\r\n<\/pre>\n<p><strong>Code Explanation:<\/strong><br \/>\nBlood Donor\u2019s can edit their profile after registering themselves whenever they want. Some information like the name, blood group cannot be edited.<\/p>\n<h3>Python Blood Donation Project Output:<\/h3>\n<p><strong>Home Page:<\/strong><\/p>\n<p><a href=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2021\/08\/python-blood-donation-home.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-84943\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2021\/08\/python-blood-donation-home.png\" alt=\"python blood donation home\" width=\"1918\" height=\"906\" \/><\/a><\/p>\n<p><strong>Blood Donor\u2019s List of particular blood group:<\/strong><\/p>\n<p><a href=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2021\/08\/blood-donors-list-group.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-84944\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2021\/08\/blood-donors-list-group.png\" alt=\"blood donors list group\" width=\"1920\" height=\"906\" \/><\/a><\/p>\n<p><strong>Blood Request:<\/strong><\/p>\n<p><a href=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2021\/08\/blood-request.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-84945\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2021\/08\/blood-request.png\" alt=\"blood request\" width=\"1920\" height=\"906\" \/><\/a><\/p>\n<h3>Summary<\/h3>\n<p>We have successfully developed a Web Based Blood Donation Management System in Python Django Framework. This Python Blood Bank project with the source code might be helpful for those who want to learn and understand Django.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Blood Donation is important for people in urgent need of it which can save millions of patients. Hence blood donation management system is very much important. Here we will develop Blood Donation system using&#46;&#46;&#46;<\/p>\n","protected":false},"author":1,"featured_media":84946,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3383],"tags":[3244,4261,3382,4262,4263,483],"class_list":["post-84664","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-django","tag-beginner-python-project","tag-blood-donation-system-project","tag-django-project","tag-python-blood-bank","tag-python-blood-donation","tag-python-project"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Online Blood Donation System Project in Python Django - TechVidvan<\/title>\n<meta name=\"description\" content=\"Develop a Web Based Blood Donation Management System in Python Django Framework in easy steps. Source code is available for your help.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/techvidvan.com\/tutorials\/python-blood-donation\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Online Blood Donation System Project in Python Django - TechVidvan\" \/>\n<meta property=\"og:description\" content=\"Develop a Web Based Blood Donation Management System in Python Django Framework in easy steps. Source code is available for your help.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/techvidvan.com\/tutorials\/python-blood-donation\/\" \/>\n<meta property=\"og:site_name\" content=\"TechVidvan\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/TechVidvan\/\" \/>\n<meta property=\"article:published_time\" content=\"2021-09-09T03:30:23+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-06-03T09:58:24+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2021\/08\/python-django-blood-donation-system.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"TechVidvan Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@vidvantech\" \/>\n<meta name=\"twitter:site\" content=\"@vidvantech\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"TechVidvan Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Online Blood Donation System Project in Python Django - TechVidvan","description":"Develop a Web Based Blood Donation Management System in Python Django Framework in easy steps. Source code is available for your help.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/techvidvan.com\/tutorials\/python-blood-donation\/","og_locale":"en_US","og_type":"article","og_title":"Online Blood Donation System Project in Python Django - TechVidvan","og_description":"Develop a Web Based Blood Donation Management System in Python Django Framework in easy steps. Source code is available for your help.","og_url":"https:\/\/techvidvan.com\/tutorials\/python-blood-donation\/","og_site_name":"TechVidvan","article_publisher":"https:\/\/www.facebook.com\/TechVidvan\/","article_published_time":"2021-09-09T03:30:23+00:00","article_modified_time":"2026-06-03T09:58:24+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2021\/08\/python-django-blood-donation-system.jpg","type":"image\/jpeg"}],"author":"TechVidvan Team","twitter_card":"summary_large_image","twitter_creator":"@vidvantech","twitter_site":"@vidvantech","twitter_misc":{"Written by":"TechVidvan Team","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/techvidvan.com\/tutorials\/python-blood-donation\/#article","isPartOf":{"@id":"https:\/\/techvidvan.com\/tutorials\/python-blood-donation\/"},"author":{"name":"TechVidvan Team","@id":"https:\/\/techvidvan.com\/tutorials\/#\/schema\/person\/e9c26e74dd3d87421f7ada9433b8cd22"},"headline":"Online Blood Donation System Project in Python Django","datePublished":"2021-09-09T03:30:23+00:00","dateModified":"2026-06-03T09:58:24+00:00","mainEntityOfPage":{"@id":"https:\/\/techvidvan.com\/tutorials\/python-blood-donation\/"},"wordCount":682,"commentCount":0,"publisher":{"@id":"https:\/\/techvidvan.com\/tutorials\/#organization"},"image":{"@id":"https:\/\/techvidvan.com\/tutorials\/python-blood-donation\/#primaryimage"},"thumbnailUrl":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2021\/08\/python-django-blood-donation-system.jpg","keywords":["Beginner Python Project","blood donation system project","Django Project","python blood bank","python blood donation","Python project"],"articleSection":["Django Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/techvidvan.com\/tutorials\/python-blood-donation\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/techvidvan.com\/tutorials\/python-blood-donation\/","url":"https:\/\/techvidvan.com\/tutorials\/python-blood-donation\/","name":"Online Blood Donation System Project in Python Django - TechVidvan","isPartOf":{"@id":"https:\/\/techvidvan.com\/tutorials\/#website"},"primaryImageOfPage":{"@id":"https:\/\/techvidvan.com\/tutorials\/python-blood-donation\/#primaryimage"},"image":{"@id":"https:\/\/techvidvan.com\/tutorials\/python-blood-donation\/#primaryimage"},"thumbnailUrl":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2021\/08\/python-django-blood-donation-system.jpg","datePublished":"2021-09-09T03:30:23+00:00","dateModified":"2026-06-03T09:58:24+00:00","description":"Develop a Web Based Blood Donation Management System in Python Django Framework in easy steps. Source code is available for your help.","breadcrumb":{"@id":"https:\/\/techvidvan.com\/tutorials\/python-blood-donation\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/techvidvan.com\/tutorials\/python-blood-donation\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/techvidvan.com\/tutorials\/python-blood-donation\/#primaryimage","url":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2021\/08\/python-django-blood-donation-system.jpg","contentUrl":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2021\/08\/python-django-blood-donation-system.jpg","width":1200,"height":628,"caption":"python django blood donation system"},{"@type":"BreadcrumbList","@id":"https:\/\/techvidvan.com\/tutorials\/python-blood-donation\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/techvidvan.com\/tutorials\/"},{"@type":"ListItem","position":2,"name":"Online Blood Donation System Project in Python Django"}]},{"@type":"WebSite","@id":"https:\/\/techvidvan.com\/tutorials\/#website","url":"https:\/\/techvidvan.com\/tutorials\/","name":"TechVidvan Blogs","description":"","publisher":{"@id":"https:\/\/techvidvan.com\/tutorials\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/techvidvan.com\/tutorials\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/techvidvan.com\/tutorials\/#organization","name":"TechVidvan","url":"https:\/\/techvidvan.com\/tutorials\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/techvidvan.com\/tutorials\/#\/schema\/logo\/image\/","url":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2024\/03\/techvidvan-logo-200x50-1.webp","contentUrl":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2024\/03\/techvidvan-logo-200x50-1.webp","width":200,"height":50,"caption":"TechVidvan"},"image":{"@id":"https:\/\/techvidvan.com\/tutorials\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/TechVidvan\/","https:\/\/x.com\/vidvantech"]},{"@type":"Person","@id":"https:\/\/techvidvan.com\/tutorials\/#\/schema\/person\/e9c26e74dd3d87421f7ada9433b8cd22","name":"TechVidvan Team","description":"The TechVidvan Team delivers practical, beginner-friendly tutorials on programming, Java, Python, C++, DSA, AI, ML, data Science, Android, Flutter, MERN, Web Development, and technology. Our experts are here to help you upskill and excel in today\u2019s tech industry."}]}},"amp_enabled":false,"_links":{"self":[{"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/posts\/84664","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/comments?post=84664"}],"version-history":[{"count":1,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/posts\/84664\/revisions"}],"predecessor-version":[{"id":448079,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/posts\/84664\/revisions\/448079"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/media\/84946"}],"wp:attachment":[{"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/media?parent=84664"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/categories?post=84664"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/tags?post=84664"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}