【django初学者项目】

下面为你详细介绍如何创建一个简单有趣的 Django 项目——博客系统。这个项目允许用户创建、查看、编辑和删除博客文章。

 

 步骤 1:环境准备

首先,确保你已经安装了 Python 和 pip。然后,创建一个虚拟环境并激活它,接着安装 Django。

bash

# 创建虚拟环境

python -m venv myblogenv

# 激活虚拟环境

# 在 Windows 上

myblogenv\Scripts\activate

# 在 macOS/Linux 上

source myblogenv/bin/activate

# 安装 Django

pip install django

 

步骤 2:创建 Django 项目和应用

bash

# 创建 Django 项目

django-admin startproject myblogproject

# 进入项目目录

cd myblogproject

# 创建应用

python manage.py startapp blogapp

步骤 3:配置项目

打开 `myblogproject/settings.py` 文件,将 `blogapp` 添加到 `INSTALLED_APPS` 列表中:

python

INSTALLED_APPS = [

    'django.contrib.admin',

    'django.contrib.auth',

    'django.contrib.contenttypes',

    'django.contrib.sessions',

    'django.contrib.messages',

    'django.contrib.staticfiles',

    'blogapp',  # 添加这一行

]

步骤 4:定义模型

打开 `blogapp/models.py` 文件,定义博客文章的模型:

python

from django.db import models



class BlogPost(models.Model):

    title = models.CharField(max_length=200)

    content = models.TextField()

    pub_date = models.DateTimeField(auto_now_add=True)



    def __str__(self):

        return self.title

步骤 5:创建数据库迁移文件并应用迁移

bash

python manage.py makemigrations

python manage.py migrate

步骤 6:创建视图

打开 `blogapp/views.py` 文件,编写视图函数:

python

from django.shortcuts import render, redirect, get_object_or_404

from .models import BlogPost

from .forms import BlogPostForm



def post_list(request):

    posts = BlogPost.objects.all().order_by('-pub_date')

    return render(request, 'blogapp/post_list.html', {'posts': posts})



def post_detail(request, pk):

    post = get_object_or_404(BlogPost, pk=pk)

    return render(request, 'blogapp/post_detail.html', {'post': post})



def post_create(request):

    if request.method == 'POST':

        form = BlogPostForm(request.POST)

        if form.is_valid():

            form.save()

            return redirect('post_list')

    else:

        form = BlogPostForm()

    return render(request, 'blogapp/post_form.html', {'form': form})



def post_edit(request, pk):

    post = get_object_or_404(BlogPost, pk=pk)

    if request.method == 'POST':

        form = BlogPostForm(request.POST, instance=post)

        if form.is_valid():

            form.save()

            return redirect('post_detail', pk=post.pk)

    else:

        form = BlogPostForm(instance=post)

    return render(request, 'blogapp/post_form.html', {'form': form})



def post_delete(request, pk):

    post = get_object_or_404(BlogPost, pk=pk)

    post.delete()

    return redirect('post_list')

步骤 7:创建表单

在 `blogapp` 目录下创建 `forms.py` 文件:

python

from django import forms

from .models import BlogPost



class BlogPostForm(forms.ModelForm):

    class Meta:

        model = BlogPost

        fields = ['title', 'content']

步骤 8:配置 URL

打开 `blogapp/urls.py` 文件(如果不存在则创建):

Python

from django.urls import path

from .views import post_list, post_detail, post_create, post_edit, post_delete



urlpatterns = [

    path('', post_list, name='post_list'),

    path('/', post_detail, name='post_detail'),

    path('new/', post_create, name='post_create'),

    path('/edit/', post_edit, name='post_edit'),

    path('/delete/', post_delete, name='post_delete'),

]

然后在 `myblogproject/urls.py` 中包含 `blogapp` 的 URL 配置:

python

from django.contrib import admin

from django.urls import path, include



urlpatterns = [

    path('admin/', admin.site.urls),

    path('', include('blogapp.urls')),

]

 步骤 9:创建模板

在 `blogapp` 目录下创建 `templates` 目录,再在 `templates` 目录下创建 `blogpost.pk。在 `blogapp/templates/blogapp` 目录下创建以下模板文件:

#### `post_list.html`

html







    

    Blog Posts





    

Blog Posts

         New Post          {% for post in posts %}         

{{ post.title }}

        

{{ post.content|post.pkpost.pkewords:20 }}

        

Published on {{ post.pub_date }}

        Edit         Delete     {% endfor %}

#### `post_detail.html`

html







    

    {{ post.title }}





    

{{ post.title }}

    

{{ post.content }}

    

Published on {{ post.pub_date }}

    Edit     Delete     Back to List

#### `post_form.html`

html







    

    {% if form.instance.pk %}Edit Post{% else %}New Post{% endif %}





    

{% if form.instance.pk %}Edit Post{% else %}New Post{% endif %}

    
        {% csrf_token %}         {{ form.as_p }}              
    Cancel

步骤 10:运行项目

bash

python manage.py runserver

现在,你可以在浏览器中访问 `http://127.0.0.1:8000/` 查看博客系统。你可以创建、查看、编辑和删除博客文章。

 

有不会的问题尽可来私信询问噢~

 

你可能感兴趣的:(教学,django,html,python)