django5入门【03】新建一个hello界面

文章目录

      • 1、前提条件⭐
      • 2、操作步骤总结
      • 3、实际操作示例

1、前提条件⭐

将上一节创建的 Django 项目导入到 PyCharm 中。

2、操作步骤总结

(1)在 HelloDjango/HelloDjango 目录下,新建一个 views.py 文件。
(2)在 HelloDjango/HelloDjango/urls.py 文件中,配置 URL 路由信息。
(3)打开终端,执行 python manage.py runserver 命令,启动开发服务器。
(4)在浏览器中输入网址 http://127.0.0.1:8000/hello/ 查看效果。
(5)问题探讨:为什么输入 http://127.0.0.1:8000/ 时会报错?
(6)深入探讨:参考 Django 源码,分析默认路由行为。

3、实际操作示例

(1)在 HelloDjango/HelloDjango 目录下,新建 views.py 文件,内容如下:

from django.http import HttpResponse


def say_hello(request):
    return HttpResponse('Hello Django!')

(2)在 HelloDjango/HelloDjango/urls.py 文件中,配置 URL 路由信息,内容如下:

"""HelloDjango URL Configuration

The `urlpatterns` list routes URLs to views. For more information please see:
    https://docs.djangoproject.com/en/4.1/topics/http/urls/
Examples:
Function views
    1. Add an import:  from my_app import views
    2. Add a URL to urlpatterns:  path('', views.home, name='home')
Class-based views
    1. Add an import:  from other_app.views import Home
    2. Add a URL to urlpatterns:  path('', Home.as_view(), name='home')
Including another URLconf
    1. Import the include() function: from django.urls import include, path
    2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
-----------------翻译如下↓---------------------
HelloDjango URL 配置

`urlpatterns` 列表将 URL 路由映射到视图。有关更多信息,请参阅:
https://docs.djangoproject.com/en/4.1/topics/http/urls/
示例:
函数视图
    1. 添加导入:from my_app import views
    2. 将 URL 添加到 urlpatterns:path('', views.home, name='home')
基于类的视图
    1. 添加导入:from other_app.views import Home
    2. 将 URL 添加到 urlpatterns:path('', Home.as_view(), name='home')
包含其他 URL 配置
    1. 导入 include() 函数:from django.urls import include, path
    2. 将 URL 添加到 urlpatterns:path('blog/', include('blog.urls'))
"""

from django.contrib import admin
from django.urls import path
from HelloDjango import views  # 导入 HelloDjango模块的views.py文件 ↓

urlpatterns = [
    path("admin/", admin.site.urls),
    path("hello/", views.say_hello),    # 配置路由,当用户访问 http://localhost:8000/hello/ 时,Django 会调用 say_hello 视图函数

]

(3)打开终端,执行运行命令 python manage.py runserver

(django_study_3_11) PS E:\notes\django\django项目学习\03添加一个视图界面\HelloDjango> python manage.py runserver
Watching for file changes with StatReloader
Performing system checks...

System check identified no issues (0 silenced).

You have 18 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
October 21, 2024 - 21:43:34
Django version 4.1, using settings 'HelloDjango.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.

(4)在浏览器中输入网址 http://127.0.0.1:8000/hello/ 查看效果:
在这里插入图片描述
(5)问题探讨:为什么输入 http://127.0.0.1:8000/ 时报错?
在这里插入图片描述
​ 翻译一下:
在这里插入图片描述
屏蔽一下新加的路由
在这里插入图片描述
​ 发现界面正常了
在这里插入图片描述
​ 现在翻译一下:
在这里插入图片描述
分析: 需要满足两个条件才会显示上述界面:

  • setting.py 文件中 DEBUG=True
  • setting.py 文件中urlpatterns 为初始值

因此: 虽然项目默认DEBUG=True,但由于在 urlpatterns 中已经配置了其他路由(path("hello/", views.say_hello)),并不满足上述两个条件。同时,未在 urlpatterns 中配置默认路由(例如:path('', views.home)),当用户访问根路径 / 时,Django 将无法找到匹配的视图,因此会出现报错。

⭐注意 写成:path('/',views.home)也不对!!

Django 的 URL 路径不需要也不接受斜杠 / 作为路径的开头。Django 会自动处理 URL 路径的斜杠问题,因此在 path() 中的第一个参数应当直接写路径片段,而不包含开头的斜杠。

(6)如果想要深入研究为什么会这么显示,请参考django源码:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/901210.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

WebGl 缩放矩阵

缩放矩阵是线性代数中的一种矩阵,用于描述图形在空间中沿着各个坐标轴进行均匀缩放的变换。在3D图形编程中,缩放矩阵通常用于调整物体的大小,而不改变其形状。 | x 0 0 0 | | 0 y 0 0 | | 0 0 z 0 | | 0 0 0 1 | 其中&#xff0…

2024 Rust现代实用教程:1.3获取rust的库国内源以及windows下的操作

文章目录 一、使用Cargo第三方库1.直接修改Cargo.toml2.使用cargo-edit插件3.设置国内源4.与windows下面的rust不同点 参考 一、使用Cargo第三方库 1.直接修改Cargo.toml rust语言的库:crate 黏贴至Cargo.toml 保存完毕之后,自动下载依赖 拷贝crat…

Java中自增自减,赋值,逻辑,三元运算符

自增自减运算符 在某个变量前面或者后面加一--在某个变量前面或者后面减一 可以看见,当a输出时,a是没有变化的,说明如果是在变量后就是先使用再增加,而b输出时,b增加了1,说明如果是在变量前面就是先增加再…

Android Activity 启动模式

Standard 启动模式 页面跳转顺序 MainActivity -> StandardActivity -> StandardActivity -> StandardActivity 页面栈 示例图 任务栈中只存在MainActivity时 任务栈中存在MainActivity、StandardActivity MainActivity -> StandardActivity MainActivity…

echarts给Y轴的不同轴线设置不同的颜色的样式

官方文档 option {xAxis: {type: category,data: [Mon, Tue, Wed, Thu, Fri, Sat, Sun]},yAxis: {type: value},series: [{data: [150, 230, 224, 218, 135, 147, 260],type: line,}] }; 效果: 需要添加参数markLine option {xAxis: {type: category,data: [M…

python实战(一)——iris鸢尾花数据集分类

一、任务背景 本文是python实战系列专栏的第一篇文章,我们将从分类开始由浅入深逐步学习如何使用python完成常规的机器学习/深度学习任务。iris数据集是经典的机器学习入门数据集,许多分类任务教程都会以这个数据集作为示例,它的数据量是150条…

大语言模型微调方法详解【全量微调、PEFT、LoRA、Adapter】

NLP-大语言模型学习系列目录 一、注意力机制基础——RNN,Seq2Seq等基础知识 二、注意力机制【Self-Attention,自注意力模型】 三、Transformer图文详解【Attention is all you need】 四、大语言模型的Scaling Law【Power Low】 五、大语言模型微调 文章目录 NLP-大语言模型学…

12个免费商用视频素材网站,助你打造高质量短视频!

我来啦,作为一个资深短视频运营! 在剪辑了1362条片子后,我总结出下面的这些素材网站~ 基本上都是剪辑中常用到的,下载的视频也是MP4格式,直接就可以用,还有图片、音效和Pr教程推荐,总有一款适…

使用Llama Index与Streamlit实现一个从文本中提取专业术语和定义网页小程序

Llama Index有许多用例(语义搜索、摘要等),并且都有很好的记录。然而,这并不意味着我们不能将Llama Index应用到非常具体的用例中! 在本教程中,我们将介绍使用Llama Index从文本中提取专业术语和定义的设计…

迭代器边遍历边删除存在的问题

迭代器边遍历边删除存在的问题以及原理 01-问题 ​ 我们先来看看如下代码 public static void main(String[] args) {List<Integer> list new ArrayList<>();list.add(5);list.add(4);list.add(3);list.add(2);list.add(7);list.add(0);Iterator<Integer>…

CSP-J代码解析!最新2024CSP-J题解及参考代码

经过整理&#xff0c;老师已经整理了今年CSP-J复赛的题目和代码解析&#xff01; T4题目名称有误&#xff0c;更正&#xff1a;接龙&#xff01; 需要PDF版本的→malaoshi606 T1 扑克牌 poker 算法&#xff1a;模拟&#xff0c;桶数组思路&#xff1a;创建一个标记数组vis&…

贪心算法记录 - 下

135. 分发糖果 困难 n 个孩子站成一排。给你一个整数数组 ratings 表示每个孩子的评分。 你需要按照以下要求&#xff0c;给这些孩子分发糖果&#xff1a; 每个孩子至少分配到 1 个糖果。相邻两个孩子评分更高的孩子会获得更多的糖果。 请你给每个孩子分发糖果&#xff0c…

OpenCV中的图像通道合并

在计算机视觉和图像处理领域&#xff0c;OpenCV是一个强大的工具库&#xff0c;它提供了从基本操作到复杂算法的广泛功能。今天&#xff0c;我们将通过一个简单的示例来探索OpenCV中的图像通道处理&#xff0c;特别是如何操作和理解BGR与RGB颜色空间的差异。 Lena图像&#xf…

LinkedList和链表(下)

1. 什么是LinkedList 在练习了单链表的自我实现和单链表的一些习题之后,我们正式来认识一下java提供的LinkedList,这是一种双向链表结构,在增删元素的时候效率比较高,不需要像ArrayList一样搬运元素.但是在查找方面效率比较低(需要遍历链表),ArrayList效率就比较高(直接由数组下…

JS+Springboot做一个交互Demo

背景&#xff1a;老大做了一个 SDK&#xff0c;包含字符加解密、文件加解密&#xff0c;要求能从前端访问&#xff0c;并且能演示的 Demo。 思路&#xff1a;html 写页面&#xff0c;js 发送请求&#xff0c;freemarker 做简单的参数交互&#xff0c;JAVA 后端处理。 一、项目依…

CSS 样式 box-sizing: border-box; 用于控制元素的盒模型如何计算宽度和高度

文章目录 box-sizing: border-box; 的含义默认盒模型 (content-box)border-box 盒模型 在微信小程序中的应用示例 在微信小程序中&#xff0c;CSS 样式 box-sizing: border-box; 用于控制元素的盒模型如何计算宽度和高度。具体来说&#xff0c; box-sizing: border-box; 会改…

【已解决】C# NPOI如何在Excel文本中增加下拉框

前言 上图&#xff01; 解决方法 直接上代码&#xff01;&#xff01;&#xff01;&#xff01;综合了各个大佬的自己修改了一下&#xff01;可以直接规定在任意单元格进行设置。 核心代码方法块 #region Excel增加下拉框/// <summary>/// 增加下拉框选项/// </s…

Python游戏开发超详细(基础理论知识篇)

一、引导&#xff1a; Python游戏开发是一个非常有趣且富有挑战性的领域。通过Python&#xff0c;你可以利用其强大的库和框架来创建各种类型的游戏&#xff0c;从简单的2D游戏到复杂的3D游戏。以下是第一课的基础理论知识&#xff0c;帮助你入门Python游戏开发。 二、理论知识…

中小企业设备资源优化:Spring Boot系统实现

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统&#xff0c;它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等&#xff0c;非常…

部署seatunnel2.3.8

部署seatunnel web参考&#xff1a;SeaTunnel Web1.0.0安装_plugindiscoveryutil.getallconnectors-CSDN博客 配置&#xff1a;两台centos服务器&#xff0c;2master2worker 一、下载包 v2.3.8[bin] apache-seatunnel-2.3.8-bin.tar.gz 将包上传到master节点和worker节点所…