Login
网站首页 > 文章中心 > 其它

Python使用Django实现博客系统完整版

作者:小编 更新时间:2023-08-16 15:36:07 浏览量:312人看过

下面是关于"Python使用Django实现博客系统完整版"的完整攻略及两条示例说明.

I. Django框架简介

Django是一个Python的开源Web框架,采用了MVT(Model-View-Template)的设计模式,从而使得Web应用的开发更为高效和稳定.通过Django,我们可以快速地构建Web应用,并且Django提供了良好的数据库操作支持,同时还可以轻松地实现前后端的分离,从而使得Web应用的开发更加简便快捷.

II. Django应用创建与配置

为了创建一个基于Django的博客系统,我们需要首先创建一个Django应用,并完成对应的配置.具体步骤如下:

1. 安装Django框架

可以通过在命令行中输入以下命令来安装Django框架:


pip install django


2. 创建Django应用

运行以下命令来创建一个基于Django的应用:


django-admin startproject myblog


其中,myblog是应用的名字,可以根据需求自行修改.

③ 创建Django App

运行以下命令来创建Django App:


cd myblog
python manage.py startapp [appname]


例如,创建名为blog的Django App:


cd myblog
python manage.py startapp blog


④ 配置Django App

在myblog/settings.py文件中添加应用blog的配置:


INSTALLED_APPS = [
'blog',
......
]


接着,在myblog/urls.py文件中添加应用blog的路由配置:


from django.urls import path, include

urlpatterns = [
path('blog/', include('blog.urls')),
......
]


III. Django模型设计与数据库操作

博客系统中需要设计文章模型,并完成对应的数据库操作.具体步骤如下:

1. 设计文章模型

在blog/models.py文件中设计文章模型:


from django.db import models

class Article(models.Model):
title = models.CharField(max_length=255)
author = models.CharField(max_length=64)
content = models.TextField()
created_time = models.DateTimeField(auto_now_add=True)
last_updated_time = models.DateTimeField(auto_now=True)


2. 数据库迁移

运行以下命令来迁移数据库:


python manage.py makemigrations blog
python manage.py migrate


③ 数据库操作

通过Django的ORM(Object-Relational Mapping)可以实现对数据库的操作.例如,插入一条文章记录的操作如下:


from blog.models import Article

article = Article(title='title', author='author', content='content')
article.save()


IV. Django视图设计与API开发

博客系统中需要设计视图以及API接口,并完成对应的开发.具体步骤如下:

1. 视图设计

在blog/views.py文件中设计视图:


from django.shortcuts import render
from blog.models import Article

def index(request):
articles = Article.objects.all()
return render(request, 'index.html', {'articles': articles})


2. API接口设计

在blog/views.py文件中设计API接口:


from django.http import JsonResponse
from blog.models import Article

def articles(request):
articles = Article.objects.all()
data = [
    {'title': article.title, 'author': article.author, 'content': article.content}
    for article in articles
]
return JsonResponse({'data': data})


③ URL配置

在blog/urls.py文件中对应的URL配置:


from django.urls import path
from blog import views

urlpatterns = [
path('', views.index, name='index'),
path('api/articles', views.articles, name='api_articles'),
]


V. 博客系统前端实现

博客系统需要通过前端实现,具体步骤如下:

1. 模板设计

在blog/templates目录下设计视图对应的模板文件,例如index.html:



2. API调用

通过JavaScript代码调用API接口,例如:


fetch('/api/articles')
  .then(response => response.json())
  .then(data => {
console.log(data)
  })


VI. 示例说明 – 一个简单的博客系统

下面是通过Django框架实现的一个简单的博客系统的示例,包含后端和前端实现.具体步骤如下:

后端实现

运行以下命令来创建一个名为blog的Django应用:


django-admin startproject myblog
cd myblog
python manage.py startapp blog


新建一个名为requirements.txt的文件,添加以下内容:


Django==③1.7
django-cors-headers==③⑦0
mysqlclient==2.0.3
pytz==2021.1


运行以下命令来安装依赖:


pip install -r requirements.txt



from django.db import models

class Article(models.Model):
title = models.CharField(max_length=255)
author = models.CharField(max_length=64)
content = models.TextField()
created_time = models.DateTimeField(auto_now_add=True)
last_updated_time = models.DateTimeField(auto_now=True)



python manage.py makemigrations blog
python manage.py migrate



from django.shortcuts import render
from blog.models import Article

def index(request):
articles = Article.objects.all()
return render(request, 'index.html', {'articles': articles})



from django.http import JsonResponse
from blog.models import Article

def articles(request):
articles = Article.objects.all()
data = [
    {'title': article.title, 'author': article.author, 'content': article.content}
    for article in articles
]
return JsonResponse({'data': data})



from django.urls import path
from blog import views

urlpatterns = [
path('', views.index, name='index'),
path('api/articles', views.articles, name='api_articles'),
]


在myblog/settings.py文件中添加以下配置:


INSTALLED_APPS = [
...
'corsheaders',
]

MIDDLEWARE = [
...
'corsheaders.middleware.CorsMiddleware',
'django.middleware.common.CommonMiddleware',
]

CORS_ORIGIN_ALLOW_ALL = True


运行以下命令来启动Django服务器:


python manage.py runserver


前端实现

我们使用Vue.js作为前端开发框架,下面是具体的实现步骤:

可以通过以下命令来安装Vue.js:


npm install vue


新建一个名为index.html的文件,添加以下内容:



运行以下命令来启动前端服务器:


python -m http.server


VII. 示例说明 – 博客系统添加登录验证

下面是在基于Django实现的博客系统中添加登录验证的示例,具体步骤如下:


python manage.py startapp users



from django.contrib.auth.models import AbstractUser

class User(AbstractUser):
pass



python manage.py makemigrations users
python manage.py migrate



INSTALLED_APPS = [
...
'users',
]

AUTH_USER_MODEL = 'users.User'



from django.contrib.auth.views import LoginView

class MyLoginView(LoginView):
template_name = 'login.html'



from django.urls import path
from . import views

urlpatterns = [
path('login/', views.MyLoginView.as_view(), name='login'),
]



{% extends 'base.html' %}

{% block content %}
{% csrf_token %} {{ form.as_p }}
{% endblock %}

from django.urls import path, include

urlpatterns = [
...
path('users/', include('django.contrib.auth.urls')),
]



from django.shortcuts import render
from django.contrib.auth.decorators import login_required
from blog.models import Article

@login_required
def index(request):
articles = Article.objects.all()
return render(request, 'index.html', {'articles': articles})



{% if user.is_authenticated %}
Logout
{% else %}
Login
{% endif %}



python manage.py runserver


以上就是土嘎嘎小编为大家整理的Python使用Django实现博客系统完整版相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章