{"id":80628,"date":"2021-04-01T13:51:46","date_gmt":"2021-04-01T08:21:46","guid":{"rendered":"https:\/\/techvidvan.com\/tutorials\/?p=80628"},"modified":"2026-06-03T15:28:25","modified_gmt":"2026-06-03T09:58:25","slug":"python-django-project-blog-web-application","status":"publish","type":"post","link":"https:\/\/techvidvan.com\/tutorials\/python-django-project-blog-web-application\/","title":{"rendered":"Python Django Project &#8211; Blog Web Application"},"content":{"rendered":"<p>In this article, we will learn to build an interesting project using django &#8211; Blog Web Application<\/p>\n<p>Django is an open source python web framework that follows model view template (MVT) architectural pattern. It is easy to learn and use, so you can easily understand this project even if you have no or less knowledge of django.<\/p>\n<p><strong>A blog application will have the following fields:<\/strong><\/p>\n<ul>\n<li>Title of the blog<\/li>\n<li>Description<\/li>\n<li>Image<\/li>\n<li>Likes<\/li>\n<\/ul>\n<p><strong>Features:<\/strong><\/p>\n<ul>\n<li>See existing blogs.<\/li>\n<li>Create new blogs.<\/li>\n<li>Like existing blogs.<\/li>\n<\/ul>\n<h3>Project Prerequisites<\/h3>\n<p>We will use the following technologies \/ tools:<\/p>\n<ol>\n<li>Python<\/li>\n<li>HTML<\/li>\n<li>CSS<\/li>\n<li>Bootstrap<\/li>\n<li>Django framework<\/li>\n<\/ol>\n<p>To install the framework, you can type the following on your cmd\/terminal.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">pip install Django\r\n<\/pre>\n<h3>Download Django Blog Application Source Code<\/h3>\n<p>Please download the source code of blog web application in django: <a href=\"https:\/\/drive.google.com\/file\/d\/1rlM6ofmbauiT8XvMT67qdCmhqjWMiLJB\/view?usp=drive_link\"><strong>Blog Application Project Code<\/strong><\/a><\/p>\n<h3>Steps to Create Blog Application in Python Django<\/h3>\n<h4>1. Writing Models<\/h4>\n<p>We will need only one model class that will store blogs and the fields are already discussed above and here is the code.<\/p>\n<p><strong>Code:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">from\u00a0django.db\u00a0import\u00a0models\r\n\r\n#\u00a0Create\u00a0your\u00a0models\u00a0here.\r\nclass\u00a0Blogs(models.Model):\r\n\u00a0\u00a0\u00a0\u00a0Image=models.ImageField(null=True,blank=True)\r\n\u00a0\u00a0\u00a0\u00a0title=models.CharField(max_length=200,null=True)\r\n\u00a0\u00a0\u00a0\u00a0description=models.CharField(max_length=1200,null=True)\r\n\u00a0\u00a0\u00a0\u00a0date=models.DateField(auto_now_add=True,null=True)\r\n\u00a0\u00a0\u00a0\u00a0likes=models.IntegerField(default=0)\r\n<\/pre>\n<h4>2. forms.py<\/h4>\n<p><strong>Code:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">from\u00a0.models\u00a0import\u00a0*\r\nfrom\u00a0django\u00a0import\u00a0forms\r\nfrom\u00a0django.forms\u00a0import\u00a0ModelForm\r\n\r\nclass\u00a0blogForm(ModelForm):\r\n\u00a0\u00a0\u00a0\u00a0class\u00a0Meta:\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0model=Blogs\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0fields='__all__'\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0exclude=['likes','date']\r\n<\/pre>\n<p>Here, we are using Django\u2019s ModelForm class to make an create blog form which will have all the fields except likes and date because date will be automatically filled and the creator shouldn\u2019t have access to modify likes.3. admin.py<\/p>\n<p>To access models on admin site we need to first make a super user, so type the following command in cmd<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">Py manage.py createsuperuser\r\n<\/pre>\n<p>After creating super user we need to register the model in admin.py<\/p>\n<p><strong>Code:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">from\u00a0django.contrib\u00a0import\u00a0admin\r\nfrom\u00a0.models\u00a0import\u00a0*\r\n\r\n#\u00a0Register\u00a0your\u00a0models\u00a0here.\r\nadmin.site.register(Blogs)\r\n<\/pre>\n<h4>4. settings.py<\/h4>\n<p><strong>Code:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">STATIC_URL\u00a0=\u00a0'\/static\/'\r\nMEDIA_URL\u00a0=\u00a0'\/images\/'\r\nMEDIA_ROOT\u00a0=\u00a0os.path.join(BASE_DIR,'media\/')\r\n<\/pre>\n<p>We will use ImageField to upload images, so we need to configure MEDIA_URL in setting.py.<\/p>\n<p>So for configuring please append above code in settings.py and then follow the next step.<\/p>\n<h4>5. urls.py<\/h4>\n<p><strong>Code:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">from\u00a0django.contrib\u00a0import\u00a0admin\r\nfrom\u00a0django.urls\u00a0import\u00a0path\r\nfrom\u00a0django.conf\u00a0import\u00a0settings\r\nfrom\u00a0django.conf.urls.static\u00a0import\u00a0static\r\nfrom\u00a0blog.views\u00a0import\u00a0*\r\n\r\nurlpatterns\u00a0=\u00a0[\r\n\u00a0\u00a0\u00a0\u00a0path('admin\/',\u00a0admin.site.urls),\r\n\u00a0\u00a0\u00a0\u00a0path('',\u00a0home,name='home'),\r\n\u00a0\u00a0\u00a0\u00a0path('add\/',addBlog,name='addblog'),\r\n\u00a0\u00a0\u00a0\u00a0path('like\/&lt;str:pk&gt;',likeBlog,name='like'),\r\n]+\u00a0static(settings.MEDIA_URL\u00a0,document_root=settings.MEDIA_ROOT)\r\n<\/pre>\n<h4>6. views.py :<\/h4>\n<p><strong>Code:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">from\u00a0django.shortcuts\u00a0import\u00a0render,redirect\r\nfrom\u00a0.models\u00a0import\u00a0*\r\nfrom\u00a0.forms\u00a0import\u00a0*\r\n\r\n#\u00a0Create\u00a0your\u00a0views\u00a0here.\r\ndef\u00a0home(request):\r\n\u00a0\u00a0\u00a0\u00a0AllBlogs=Blogs.objects.all()\r\n\u00a0\u00a0\u00a0\u00a0context={\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'blogs':AllBlogs,\r\n\u00a0\u00a0\u00a0\u00a0}\r\n\u00a0\u00a0\u00a0\u00a0print(AllBlogs)\r\n\u00a0\u00a0\u00a0\u00a0return\u00a0render(request,'home.html',context)\r\n\r\ndef\u00a0addBlog(request):\r\n\u00a0\u00a0\u00a0\u00a0form=blogForm()\r\n\u00a0\u00a0\u00a0\u00a0if\u00a0request.method=='POST':\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0form=blogForm(request.POST,request.FILES)\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if\u00a0form.is_valid():\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0form.save()\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return\u00a0redirect('\/')\r\n\u00a0\u00a0\u00a0\u00a0context={\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'form':form,\r\n\u00a0\u00a0\u00a0\u00a0}\r\n\u00a0\u00a0\u00a0\u00a0return\u00a0render(request,'addblog.html',context)\r\n\r\ndef\u00a0likeBlog(request,pk):\r\n\u00a0\u00a0\u00a0\u00a0blog=Blogs.objects.get(id=pk)\r\n\u00a0\u00a0\u00a0\u00a0blog.likes+=1\r\n\u00a0\u00a0\u00a0\u00a0blog.save()\r\n\u00a0\u00a0\u00a0\u00a0return\u00a0redirect('\/')\r\n<\/pre>\n<p>We have created three functions in this file:<\/p>\n<p><strong>1.Home:<\/strong> It stores all the blog objects in \u2018AllBlogs\u2019 and pass them to home.html<\/p>\n<p><strong>Home.html:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">{%\u00a0load\u00a0static\u00a0%}\r\n&lt;html&gt;\r\n\u00a0\u00a0\u00a0\u00a0&lt;head&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;title&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Techvidvan\u00a0Blog\u00a0Application\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;\/title&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;link\u00a0rel=\"stylesheet\"\u00a0href=\"https:\/\/stackpath.bootstrapcdn.com\/bootstrap\/4.5.0\/css\/bootstrap.min.css\"\u00a0integrity=\"sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk\"\u00a0crossorigin=\"anonymous\"&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;link\u00a0rel=\"stylesheet\"\u00a0href=\"\u00a0{%\u00a0static\u00a0'\/css\/main.css'\u00a0%}\u00a0\"&gt;\r\n\u00a0\u00a0\u00a0\u00a0&lt;\/head&gt;\r\n\u00a0\u00a0\u00a0\u00a0&lt;body&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{%\u00a0block\u00a0content\u00a0%}\u00a0\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;div\u00a0class=\"container\"&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;a\u00a0href=\"{%\u00a0url\u00a0'addblog'\u00a0%}\"\u00a0class='btn\u00a0btn-primary'&gt;Add\u00a0Blog&lt;\/a&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;br&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{%for\u00a0b\u00a0in\u00a0blogs\u00a0%}\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;br&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;div\u00a0class=\"row\"&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;div\u00a0class=\"col-md-3\"&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;div\u00a0class=\"card\"\u00a0style=\"width:\u00a022rem;\"&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;img\u00a0src=\"{{b.Image.url}}\"\u00a0class=\"card-img-top\"\u00a0alt=\"\"&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;div\u00a0class=\"card-body\"&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;h5\u00a0class=\"card-title\"&gt;{{b.title}}&lt;\/h5&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;p\u00a0class=\"card-text\"&gt;{{b.description}}&lt;\/p&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;form\u00a0action='{%\u00a0\u00a0url\u00a0'like'\u00a0b.id\u00a0%}'\u00a0method=POST&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{%\u00a0csrf_token\u00a0%}\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;button\u00a0type='submit'\u00a0class='btn\u00a0btn-success'&gt;{{b.likes}}\u00a0Like&lt;\/button&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;\/form&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;p\u00a0class=\"card-text\"&gt;Published\u00a0on:\u00a0{{b.date}}&lt;\/p&gt;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;\/div&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;\/div&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;\/div&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;\/div&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;br&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{%\u00a0endfor\u00a0%}\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;\/div&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{%\u00a0endblock\u00a0%}\r\n\u00a0\u00a0\u00a0\u00a0&lt;\/body&gt;\r\n\u00a0\u00a0\u00a0\u00a0&lt;script&gt;\r\n\r\n\u00a0\u00a0\u00a0\u00a0&lt;\/script&gt;\r\n<\/pre>\n<p>In this file, We are displaying all the stored blogs in separate bootstrap cards.<\/p>\n<p>We have used bootstap for all the designing part so there is no CSS code required.<\/p>\n<p><strong>2. addBlog:<\/strong> It uses blogForm to create a form and pass it to addblog.html and addblog.html again calls this function with POST request, then it checks the validation of the form and after checking it saves it in the database abd redirects to the home page.<\/p>\n<p><strong>AddBlog.html<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">{%\u00a0extends\u00a0'home.html'\u00a0%}\r\n{%\u00a0load\u00a0static\u00a0%}\r\n{%\u00a0block\u00a0content\u00a0%}\r\n&lt;br&gt;\r\n&lt;div\u00a0class=\"container\u00a0\"\u00a0style=\"border:5px\u00a0solid\u00a0black\"&gt;\r\n\u00a0\u00a0\u00a0\u00a0&lt;br&gt;\r\n\u00a0\u00a0\u00a0\u00a0&lt;form\u00a0action=\"\"\u00a0method='POST'\u00a0enctype=\"multipart\/form-data\"&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{%\u00a0csrf_token\u00a0%}\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{{form.as_p}}\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;input\u00a0class=\"btn\u00a0btn-success\"\u00a0type=\"submit\"\u00a0name=\"Add\"&gt;\r\n\u00a0\u00a0\u00a0\u00a0&lt;\/form&gt;\r\n&lt;\/div&gt;\r\n{%\u00a0endblock\u00a0%}\r\n<\/pre>\n<h3>Django Blog Web Application Output<\/h3>\n<p><a href=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2021\/04\/add-blogs.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-80631\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2021\/04\/add-blogs.png\" alt=\"add blogs\" width=\"1366\" height=\"726\" \/><\/a><\/p>\n<p><a href=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2021\/04\/blog-home-page.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-80632\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2021\/04\/blog-home-page.png\" alt=\"blog home page\" width=\"1366\" height=\"729\" \/><\/a><\/p>\n<h3>Summary<\/h3>\n<p>We have successfully developed Django Blog Web Application. This project will surely help you to become a pro in Python Django<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this article, we will learn to build an interesting project using django &#8211; Blog Web Application Django is an open source python web framework that follows model view template (MVT) architectural pattern. It&#46;&#46;&#46;<\/p>\n","protected":false},"author":1,"featured_media":80633,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3383],"tags":[3381,3382,3384,483],"class_list":["post-80628","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-django","tag-blog-web-application","tag-django-project","tag-django-web-application","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>Python Django Project - Blog Web Application - TechVidvan<\/title>\n<meta name=\"description\" content=\"Python Django Project - Blog Web Application - Learn how to create a blog application in python django. In this project we will follow MVT architecture\" \/>\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-django-project-blog-web-application\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Python Django Project - Blog Web Application - TechVidvan\" \/>\n<meta property=\"og:description\" content=\"Python Django Project - Blog Web Application - Learn how to create a blog application in python django. In this project we will follow MVT architecture\" \/>\n<meta property=\"og:url\" content=\"https:\/\/techvidvan.com\/tutorials\/python-django-project-blog-web-application\/\" \/>\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-04-01T08:21:46+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-06-03T09:58:25+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2021\/04\/python-django-project-blog-web-application.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=\"3 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Python Django Project - Blog Web Application - TechVidvan","description":"Python Django Project - Blog Web Application - Learn how to create a blog application in python django. In this project we will follow MVT architecture","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-django-project-blog-web-application\/","og_locale":"en_US","og_type":"article","og_title":"Python Django Project - Blog Web Application - TechVidvan","og_description":"Python Django Project - Blog Web Application - Learn how to create a blog application in python django. In this project we will follow MVT architecture","og_url":"https:\/\/techvidvan.com\/tutorials\/python-django-project-blog-web-application\/","og_site_name":"TechVidvan","article_publisher":"https:\/\/www.facebook.com\/TechVidvan\/","article_published_time":"2021-04-01T08:21:46+00:00","article_modified_time":"2026-06-03T09:58:25+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2021\/04\/python-django-project-blog-web-application.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":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/techvidvan.com\/tutorials\/python-django-project-blog-web-application\/#article","isPartOf":{"@id":"https:\/\/techvidvan.com\/tutorials\/python-django-project-blog-web-application\/"},"author":{"name":"TechVidvan Team","@id":"https:\/\/techvidvan.com\/tutorials\/#\/schema\/person\/e9c26e74dd3d87421f7ada9433b8cd22"},"headline":"Python Django Project &#8211; Blog Web Application","datePublished":"2021-04-01T08:21:46+00:00","dateModified":"2026-06-03T09:58:25+00:00","mainEntityOfPage":{"@id":"https:\/\/techvidvan.com\/tutorials\/python-django-project-blog-web-application\/"},"wordCount":425,"commentCount":0,"publisher":{"@id":"https:\/\/techvidvan.com\/tutorials\/#organization"},"image":{"@id":"https:\/\/techvidvan.com\/tutorials\/python-django-project-blog-web-application\/#primaryimage"},"thumbnailUrl":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2021\/04\/python-django-project-blog-web-application.jpg","keywords":["blog web application","Django Project","Django web application","Python project"],"articleSection":["Django Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/techvidvan.com\/tutorials\/python-django-project-blog-web-application\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/techvidvan.com\/tutorials\/python-django-project-blog-web-application\/","url":"https:\/\/techvidvan.com\/tutorials\/python-django-project-blog-web-application\/","name":"Python Django Project - Blog Web Application - TechVidvan","isPartOf":{"@id":"https:\/\/techvidvan.com\/tutorials\/#website"},"primaryImageOfPage":{"@id":"https:\/\/techvidvan.com\/tutorials\/python-django-project-blog-web-application\/#primaryimage"},"image":{"@id":"https:\/\/techvidvan.com\/tutorials\/python-django-project-blog-web-application\/#primaryimage"},"thumbnailUrl":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2021\/04\/python-django-project-blog-web-application.jpg","datePublished":"2021-04-01T08:21:46+00:00","dateModified":"2026-06-03T09:58:25+00:00","description":"Python Django Project - Blog Web Application - Learn how to create a blog application in python django. In this project we will follow MVT architecture","breadcrumb":{"@id":"https:\/\/techvidvan.com\/tutorials\/python-django-project-blog-web-application\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/techvidvan.com\/tutorials\/python-django-project-blog-web-application\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/techvidvan.com\/tutorials\/python-django-project-blog-web-application\/#primaryimage","url":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2021\/04\/python-django-project-blog-web-application.jpg","contentUrl":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2021\/04\/python-django-project-blog-web-application.jpg","width":1200,"height":628,"caption":"python django project blog web application"},{"@type":"BreadcrumbList","@id":"https:\/\/techvidvan.com\/tutorials\/python-django-project-blog-web-application\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/techvidvan.com\/tutorials\/"},{"@type":"ListItem","position":2,"name":"Python Django Project &#8211; Blog Web Application"}]},{"@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":true,"_links":{"self":[{"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/posts\/80628","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=80628"}],"version-history":[{"count":1,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/posts\/80628\/revisions"}],"predecessor-version":[{"id":448080,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/posts\/80628\/revisions\/448080"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/media\/80633"}],"wp:attachment":[{"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/media?parent=80628"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/categories?post=80628"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/tags?post=80628"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}