当前位置: 首页 > web >正文

Python实例题:Django搭建简易博客

目录

Python实例题

题目

1. 创建 Django 项目和应用

2. 配置项目

3. 设计模型

blog_app

templates

blog_app

post_list.html

admin.py

models.py

urls.py

views.py

blog_project

urls.py

代码解释

models.py:

admin.py:

urls.py(应用):

views.py:

urls.py(项目):

post_list.html:

运行项目

注意事项

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 Postadmin.site.register(Post)
models.py
from django.db import models
from django.utils import timezoneclass 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 viewsurlpatterns = [path('', views.post_list, name='post_list'),
]
views.py
from django.shortcuts import render
from .models import Postdef 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, includeurlpatterns = [path('admin/', admin.site.urls),path('', include('blog_app.urls')),
]

代码解释

  • models.py

    • 定义了 Post 模型,包含文章的标题、内容和发布日期。__str__ 方法用于在管理界面等地方显示文章的标题。
  • admin.py

    • 将 Post 模型注册到 Django 管理界面,方便在后台管理文章。
  • urls.py(应用)

    • 定义了应用的 URL 路由,将根路径映射到 post_list 视图函数。
  • 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/ 可以登录管理界面添加、编辑和删除文章。

注意事项

  • 这只是一个简易博客的基础框架,你可以根据需求进一步扩展,如添加文章详情页、评论功能、用户认证等。
  • 在生产环境中,需要进行更多的配置,如数据库优化、静态文件处理、安全设置等。
http://www.xdnf.cn/news/5645.html

相关文章:

  • FEKO许可证的安全与合规性
  • uni-app微信小程序登录流程详解
  • linux-驱动开发之设备树详解(RK平台为例)
  • 【递归、搜索与回溯】专题一:递归(一)
  • Java面试高阶篇:Spring Boot+Quarkus+Redis高并发架构设计与性能优化实战
  • Maven 项目构建时编译错误问题排查与解决
  • Spring Boot整合Kafka实战指南:从环境搭建到消息处理全解析
  • 【MCP】魔搭社区MCP服务(高德地图、everything文件搜索)
  • Ai网站流式渲染总结
  • c语言第一个小游戏:贪吃蛇小游戏03
  • #在 CentOS 7 中手动编译安装软件操作及原理
  • 03.Golang 切片(slice)源码分析(二、append实现)
  • 视频监控汇聚平台EasyCVR安防视频监控小知识:视频监控系统与监视器安装
  • 【Redis实战篇】分布式锁-Redisson
  • 最新AI产品库哪个平台好?最新AI工具网站平台推荐
  • C++中的std::allocator
  • 神经生物学+图论双buff,揭示大脑语言系统的拓扑结构
  • Android学习总结之线程池篇
  • 脑机接口重点产品发展路径分析:以四川省脑机接口及人机交互产业攻坚突破行动计划(2025-2030年)为例
  • Matlab 短时交通流预测AR模型
  • 【C#】ToArray的使用
  • 将本地文件上传到云服务器上
  • Matlab 模糊控制节水洗衣机模型
  • Next.js 知识框架总结
  • 212. 单词搜索 II【 力扣(LeetCode) 】
  • windows下docker 运行 ros2humble arm64
  • day 23
  • VIC-2D 7.0 为平面样件机械试验提供全视野位移及应变数据软件
  • MySQL是如何加行级锁的
  • Java大师成长计划之第19天:性能调优与GC原理