目录
Python实例题
题目
Django搭建简易博客
1. 创建 Django 项目和应用
首先,确保你已经安装了 Django。如果没有安装,可以使用以下命令进行安装:
pip install django
接着,创建一个新的 Django 项目和应用:
django-admin startproject blog_project
cd blog_project
python manage.py startapp blog_app
2. 配置项目
在 blog_project/settings.py
中,将 blog_app
添加到 INSTALLED_APPS
列表里:
INSTALLED_APPS = [
# ...
'blog_app',
]
3. 设计模型
在 blog_app/models.py
中定义博客文章的模型:
blog_app
templates
blog_app
post_list.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>博客文章列表</title>
</head>
<body>
<h1>博客文章列表</h1>
{% for post in posts %}
<h2><a href="#">{{ post.title }}</a></h2>
<p>{{ post.content }}</p>
<p>发布日期: {{ post.pub_date }}</p>
{% endfor %}
</body>
</html>
admin.py
from django.contrib import admin
from .models import Post
admin.site.register(Post)
models.py
from django.db import models
from django.utils import timezone
class Post(models.Model):
title = models.CharField(max_length=200)
content = models.TextField()
pub_date = models.DateTimeField(default=timezone.now)
def __str__(self):
return self.title
urls.py
from django.urls import path
from . import views
urlpatterns = [
path('', views.post_list, name='post_list'),
]
views.py
from django.shortcuts import render
from .models import Post
def post_list(request):
posts = Post.objects.order_by('-pub_date')
return render(request, 'blog_app/post_list.html', {'posts': posts})
blog_project
urls.py
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('blog_app.urls')),
]
代码解释
models.py
:- 定义了
Post
模型,包含文章的标题、内容和发布日期。__str__
方法用于在管理界面等地方显示文章的标题。
- 定义了
admin.py
:- 将
Post
模型注册到 Django 管理界面,方便在后台管理文章。
- 将
urls.py
(应用):- 定义了应用的 URL 路由,将根路径映射到
post_list
视图函数。
- 定义了应用的 URL 路由,将根路径映射到
views.py
:post_list
视图函数从数据库中获取所有文章,并按发布日期降序排列,然后将文章列表传递给post_list.html
模板进行渲染。
urls.py
(项目):- 将应用的 URL 路由集成到项目中,使项目能够处理来自博客应用的请求。
post_list.html
:- HTML 模板用于显示文章列表,通过 Django 的模板语法遍历文章列表并显示文章的标题、内容和发布日期。
运行项目
- 执行数据库迁移命令:
python manage.py makemigrations
python manage.py migrate
- 创建超级用户,用于登录 Django 管理界面:
python manage.py createsuperuser
- 启动开发服务器:
python manage.py runserver
- 打开浏览器,访问
http://127.0.0.1:8000/
可以看到博客文章列表。访问http://127.0.0.1:8000/admin/
可以登录管理界面添加、编辑和删除文章。
注意事项
- 这只是一个简易博客的基础框架,你可以根据需求进一步扩展,如添加文章详情页、评论功能、用户认证等。
- 在生产环境中,需要进行更多的配置,如数据库优化、静态文件处理、安全设置等。