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

server/2024/11/17 8:27:20/

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.ppmy.cn/server/142609.html

相关文章

C#自定义特性-SQL

语法 原则 自定义特性必须继承自System.Attribute类&#xff1b; AttributeUsage属性来指定特性的使用范围和是否允许重复等&#xff1b; 在特性类中定义属性&#xff0c;这些属性将用于存储特性值。 示例 using System;// 定义一个自定义特性类 [Attribute…

什么是UDP攻击?为什么UDP攻击难以防御?

什么是UDP攻击?为什么UDP攻击难以防御? 在当前的网络环境中&#xff0c;随着技术的不断进步&#xff0c;网络攻击的方式也变得越来越复杂。分布式拒绝服务(DDoS)攻击是最常见且破坏性极强的攻击方式之一&#xff0c;而其中一种常见的DDoS攻击方式就是UDP攻击。本文将详细介绍…

Android 国际化多语言标点符号的适配

国际化多语言标点符号 **一、了解不同语言标点符号的差异****二、Android中的适配方法** 参考地址 在Android多语言场景下&#xff0c;标点符号的适配是一个重要的细节&#xff0c;以下是关于这方面的详细内容&#xff1a; 一、了解不同语言标点符号的差异 语言习惯差异 不同语…

Android 删除设置的WLAN偏好选项菜单,即设置不可见

vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/network/NetworkProviderSettings.java preference页面设置不可见 【出现在搜索框里面】【不可以注释network_provider_settings】 private void addPreferences() { addPreferences…

【学术论文投稿】云原生后端:解锁高效可扩展应用的魔法世界

【IEEE独立出版、往届全部检索】第五届IEEE信息科学与教育国际学术会议&#xff08;ICISE-IE 2024&#xff09;_艾思科蓝_学术一站式服务平台 更多学术会议请看&#xff1a;https://ais.cn/u/nuyAF3 目录 一、云原生后端的崛起&#xff1a;时代的必然选择 二、云原生后端的…

.NET 9 中 IFormFile 的详细使用讲解

在.NET应用程序中&#xff0c;处理文件上传是一个常见的需求。.NET 9 提供了 IFormFile 接口&#xff0c;它可以帮助我们轻松地处理来自客户端的文件上传。以下是 IFormFile 的详细使用讲解。 IFormFile 接口简介 IFormFile 是一个表示上传文件的接口&#xff0c;它提供了以下…

不同规模的企业需要部署哪种组网?

针对不同规模的企业&#xff0c;合理的企业组网方式可以帮助优化网络性能和管理效率。以下是适合各类企业的组网建议。 一、小型企业&#xff08;少于50用户&#xff09; 选择经济实用的网络设备 小型企业可选择简单、成本合理的网络设备&#xff0c;如家庭路由器或小型商用路由…

c++ 类和对象(中)

前言 我们看看下面的代码以及代码运行结果 代码1 我们可以看到在我们的类Data中的函数成员print中&#xff0c;我们并没有设置形参&#xff0c;在调用此函数时&#xff0c;也并没有多余传参&#xff0c;但是我们调用它时&#xff0c;却能准确打印出我们的_year、_month、_day…