马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
下面为你具体先容如何创建一个简单有趣的 Django 项目——博客系统。这个项目允许用户创建、查看、编辑和删除博客文章。
步调 1:环境准备
首先,确保你已经安装了 Python 和 pip。然后,创建一个虚拟环境并激活它,接着安装 Django。
bash
# 创建虚拟环境
# 激活虚拟环境
# 在 Windows 上
- myblogenv\Scripts\activate
复制代码 # 在 macOS/Linux 上
- source myblogenv/bin/activate
复制代码 # 安装 Django
步调 2:创建 Django 项目和应用
bash
# 创建 Django 项目
- django-admin startproject 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('<int:pk>/', post_detail, name='post_detail'),
- path('new/', post_create, name='post_create'),
- path('<int:pk>/edit/', post_edit, name='post_edit'),
- path('<int:pk>/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
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>Blog Posts</title>
- </head>
- <body>
- <h1>Blog Posts</h1>
- <!-- 假设视图名为 post_create,正确创建新文章链接 -->
- <a href="{% url 'post_create' %}">New Post</a>
- <!-- 假设 posts 是包含博客文章的列表 -->
- {% for post in posts %}
- <h2><a href="{% url 'post_detail' post.pk %}">{{ post.title }}</a></h2>
- <p>{{ post.content|post.pkpost.pkewords:20 }}</p>
- <p>Published on {{ post.pub_date }}</p>
- <a href="{% url 'post_edit' post.pk %}">Edit</a>
- <a href="{% url 'post_delete' post.pk %}">Delete</a>
- {% endfor %}
- </body>
- </html>
复制代码 #### `post_detail.html`
html
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>{{ post.title }}</title>
- </head>
- <body>
- <h1>{{ post.title }}</h1>
- <p>{{ post.content }}</p>
- <p>Published on {{ post.pub_date }}</p>
- <a href="{% url 'post_edit' post.pk %}">Edit</a>
- <a href="{% url 'post_delete' post.pk %}">Delete</a>
- <a href="{% url 'post_list' %}">Back to List</a>
- </body>
- </html>
复制代码 #### `post_form.html`
html
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>{% if form.instance.pk %}Edit Post{% else %}New Post{% endif %}</title>
- </head>
- <body>
- <h1>{% if form.instance.pk %}Edit Post{% else %}New Post{% endif %}</h1>
- <form method="post">
- {% csrf_token %}
- {{ form.as_p }}
- <button type="submit">Save</button>
- </form>
- <a href="{% url 'post_list' %}">Cancel</a>
- </body>
- </html>
复制代码 步调 10:运行项目
bash
- python manage.py runserver
复制代码 如今,你可以在浏览器中访问 `http://127.0.0.1:8000/` 查看博客系统。你可以创建、查看、编辑和删除博客文章。
有不会的问题尽可来私信询问噢~
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |