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

1. Django中的URL调度器 (项目创建与简单测试)

1. 创建 Django 项目

运行以下命令创建一个名为 blog_project 的 Django 项目:

django-admin startproject blog_project

2. 创建博客应用

Django 中,项目可以包含多个应用。创建一个名为 blog 的应用:

cd blog_project
python manage.py startapp blog

3. 定义视图函数(views.py)

在 blog/views.py 中,定义一些视图函数处理不同的页面请求。

from django.http import HttpResponsedef home(request):return HttpResponse("欢迎来到博客主页!")
def post_detail(request, post_id):return HttpResponse(f"这是博客文章 {post_id} 的详情页面。")
def about(request):return HttpResponse("关于我们页面。")

4. 定义应用的URL映射(blog/urls.py)

在 blog/urls.py 中,定义该应用的URL调度规则。

from django.urls import path
from . import views
urlpatterns = [path('', views.home, name='home'),  # 主页path('post/<int:post_id>/', views.post_detail, name='post_detail'),  # 文章详情path('about/', views.about, name='about'),  # 关于我们
]

5. 将应用的URL映射到全局URL配置(blog_project/urls.py)

from django.contrib import admin
from django.urls import include, pathurlpatterns = [path('admin/', admin.site.urls),  # 管理后台path('blog/', include('blog.urls')),  # 包含 blog 应用的 URL 配置
]

整体如图:
在这里插入图片描述

6. 流程解释

  • 用户访问 http://localhost:8000/blog/:

  • URL Dispatcher 匹配到 blog/urls.py 中的 ‘’。

  • 调用 views.home,返回主页内容。
    在这里插入图片描述

  • 用户访问 http://localhost:8000/blog/post/5/:

  • URL Dispatcher 匹配到 blog/urls.py 中的 ‘post/int:post_id/’。

  • 提取 post_id=5 或 post_id=1 并传递给 views.post_detail。

  • 返回文章详情页面。
    在这里插入图片描述

  • 用户访问 http://localhost:8000/blog/about/:

  • URL Dispatcher 匹配到 blog/urls.py 中的 ‘about/’。

  • 调用 views.about,返回关于页面内容
    在这里插入图片描述
    希望这个教程对你有所帮助!如果有任何问题,欢迎随时提问。

http://www.lryc.cn/news/485669.html

相关文章:

  • 学习python的第十天之数据类型——dict字典
  • 华为Mate 70临近上市:代理IP与抢购攻略
  • 进程信号
  • RT-DETR融合GhostModel V3及相关改进思路
  • JVM有哪些垃圾回收器
  • EWM 打印
  • 前端文件优化
  • 电脑怎么自动切换IP地址
  • hbase集成phoenix
  • 单片机智能家居火灾环境安全检测
  • Git_2024/11/16
  • Java基础夯实——2.1Java常见的线程创建方式
  • 【Docker容器】一、一文了解docker
  • Spring:IOC实例化对象bean的方式
  • 深入解析生成对抗网络(GAN)
  • curl命令提交大json
  • 以太坊拥堵扩展解决方案Arbitrum
  • Kafka新节点加入集群操作指南
  • 【Android compose原创组件】在Compose里面实现内容不满一屏也可以触发边界阻尼效果的一种可用方法
  • 介绍一下struct(c基础)
  • 模型压缩——基于粒度剪枝
  • IntelliJ IDEA 2023.2x——图文配置
  • SpringBoot(5)-SpringSecurity
  • fast-api后端 + fetch 前端流式文字响应
  • Qt 的 QThread:多线程编程的基础
  • 周末总结(2024/11/16)
  • Chrome和Chromium的区别?浏览器引擎都用的哪些?浏览器引擎的作用?
  • 流程图图解@RequestBody @RequestPart @RequestParam @ModelAttribute
  • AutoUpdater.NET 实现 dotNET应用自动更新
  • 108. UE5 GAS RPG 实现地图名称更新和加载关卡