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

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 HttpResponsedef say_hello(request):return HttpResponse('Hello Django!')

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

"""HelloDjango URL ConfigurationThe `urlpatterns` list routes URLs to views. For more information please see:https://docs.djangoproject.com/en/4.1/topics/http/urls/
Examples:
Function views1. Add an import:  from my_app import views2. Add a URL to urlpatterns:  path('', views.home, name='home')
Class-based views1. Add an import:  from other_app.views import Home2. Add a URL to urlpatterns:  path('', Home.as_view(), name='home')
Including another URLconf1. Import the include() function: from django.urls import include, path2. 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 views2. 将 URL 添加到 urlpatterns:path('', views.home, name='home')
基于类的视图1. 添加导入:from other_app.views import Home2. 将 URL 添加到 urlpatterns:path('', Home.as_view(), name='home')
包含其他 URL 配置1. 导入 include() 函数:from django.urls import include, path2. 将 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源码:
在这里插入图片描述

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

相关文章:

  • 【Unity】Unity中调用手机的震动功能 包括安卓和IOS
  • 【软件工程】软件工程入门
  • 命名空间std, using namespace std
  • 人工智能:未来生活与工作的变革者
  • SEO基础:什么是LSI关键词?【百度SEO优化专家】
  • 将理论付诸实践:如何通过实际项目有效学习和应用新技术
  • 【R + Python】iNaturalist 网站图片下载 inat api
  • C#与Sqlite数据库
  • 2019年计算机网络408真题解析
  • 江协科技STM32学习- P21 ADC模数转换器
  • [RK3566-Android11] 使用SPI方式点LED灯带-JE2815/WS2812,实现呼吸/渐变/随音量变化等效果
  • PostgreSQL用load语句加载插件
  • 一文了解:增强图像搜索之图像嵌入
  • yolov9目标检测/分割预测报错AttributeError: ‘list‘ object has no attribute ‘device‘常见汇总
  • 格姗知识圈博客网站开源了!
  • 【C++】深入理解C++中的类型推导:从auto到decltype的应用与实践
  • 使用Prometheus对微服务性能自定义指标监控
  • 深入解析 Lombok 的实现原理:以 @Builder 为例的实战演示(三)
  • SEO基础:什么是SERP?【百度SEO专家】
  • HTML5教程(一)- 网页与开发工具
  • Java进阶篇设计模式之二 ----- 工厂模式
  • 考研篇——数据结构王道3.2.2_队列的顺序实现
  • 从零开始理解 Trie 树:高效字符串存储与查找的利器【自动补全、拼写检查】
  • 关于sse、websocket与流式渲染
  • Python 语法与数据类型详解
  • LeetCode题练习与总结:扁平化嵌套列表迭代器--341
  • 51单片机快速入门之 AD(模数) DA(数模) 转换 2024/10/25
  • Typora 、 Minio and PicGo 图床搭建
  • 【计网】UDP Echo Server与Client实战:从零开始构建简单通信回显程序
  • 微服务网关Zuul